> Я не подтосовывал колоду.
Что касается этого benchmark, мне тоже кажется, что тест "оторванный от реальных практических метрик (синтетический)". Я не имел в виду того, что Вы так поступили преднамеренно.
> Я сравнивал Постгрес с RocksDB где LSM вполне себе ACID-ая.
Дьявол в деталях.
> Вот приведённая ссылка на in-memory беннчмарк, как раз на мой взгляд совершенно не уместна
То есть против того, что в
типичном случае (а это
не когда индекс "влезает в память", а когда его "горячая" часть туда влезает, а она может быть в сотни раз меньше!) LSM
проигрывает, у Вас возражений нет? ;)
Тогда пойдём дальше, вот ссылка на RocksDB vs LMDB уже в существенной степени не в RAM:
https://www.mdeditor.tw/pl/2cBB> Я не утверждал, что LSM всегда и на любой нагрузке лучше, чем B-Tree. Как раз наоборот.
Вот именно.
> Насколько это "синтетический" use case?
Может быть, разработчики других general-purpose RDBMS кардинально ошибаются, когда считают этот случай [очень] редким (и, соответственно, не используют LSM trees для on-disk indexes)?
Мне он тоже кажется очень редким, но уверенности у меня нет.
А давайте спросим присутствующих.
> Но есть use case, на котором оно однозначно и убедительно выигрывает вставки случайных ключей в большую таблицу, с запасом не влезающую в память.
Коллеги, это редкий случай, как вам кажется?
> Но у нас в ПгПро было множество заказчиков, у которых профиль нагрузки был именно такой.
Непустое множество, Вы имели в виду? (шутка) Т.е. статистика у Вас есть?
> СЛиваение - это последовательное чтение и запись, что диски умеют делать достаточно хорошо.
Примерно так же, как современные диски умеют делать и произвольную... но всё это в общем и целом "теоретически" верно.
> Кто не верит - может сам взять тест и проверить. Или написать свой.
А у кого нет времени заниматься этой ерундой этим — может помолчать? ;)
Нет, ну правда, хочется потратить время как то полезнее / приятнее, чем на то, чтобы убеждаться в очевидных, но
не относящихся к делу (IMNSHO) вещах.
> Как видно - это достаточно ограниченный сценарий.
Вот именно. Поэтому (по "сопутствующим" причинам, точнее),
по моему мнению, LSM в
самом PostgreSQL
не нужен.
Но если кто-то готов написать, выложить и поддерживать качественное расширение — им и карты в руки.
> Но понимать когда LSM может обеспечит существенный выигрыш в скорости - весьма ИМХО полезно.
Понимать, когда что-то может обеспечить существенный выигрыш, в принципе полезно, да.
И это также даёт понимание того, что, ловко подбирая условия, можно показать "преимущество" почти чего угодно перед чем угодно.