Перейти к содержимому

CockroachDB: почему они отказались от RocksDB — ЭП5

Sorted Runs

0:00 / 0:00

CockroachDB: почему они отказались от RocksDB — ЭП5

737 просмотров · 5 дн. назад
Sorted Runs
78 подписчиков
737 просмотров · 5 дн. назад
Февраль 2016 года. Бенчмарк CockroachDB записывает около 1944 строк в секунду. Через минуту скорость снижается до 105. Профайлер почти ничего не показывает: время находится внутри RocksDB, за пределами области действия cgo. Обычно говорят, что RocksDB переписали на Go, потому что Go лучше. Обе реальные причины уже описаны в этом баге: в LSM удаление — это запись, а данные покидают базу данных только во время компакции; и каждый вызов из Go в C++ обходится дорого. Четыре года спустя CockroachDB выпустила собственный движок, Pebble. Полная статья с диаграммами и всеми источниками: https://blog.renatocron.com/why-cockr... Исправления (подробности в начале статьи): • Пороговое значение Compactor составляет 256 МиБ или 10% от используемых логических байтов (или 10% доступного пространства), а не 10% диска. • Функция "удаления диапазонов" была включена в 2022 году только в ветке разработки. В версии 22.2 она была удалена. Начиная с версии 23.1, она включена постоянно. • В сообщении 2019 года обходные пути cgo названы управляемыми, а не стоимостью копирования значений. • 200 нс на вызов — это показатель 2016 года. При 52 нс, показанных ранее, миллион вызовов стоит около 0,05 с, а не 0,2 с. ВРЕМЕННЫЕ МЕТКИ - 0:00 1944 строки в секунду, затем 105 0:15 Профайлер ничего не обнаружил 0:52 Удаление — это запись 1:26 Надгробия стоят операций чтения 1:52 Каждая запись — это версия 2:28 Ошибка 2016 года, шаг за шагом 3:21 Удаление целого диапазона 3:52 Выборщик, который не смотрел, и Компактор 4:36 Чтение MVCC — это цикл 4:59 Мост cgo: плата в 100 раз больше 5:33 2018: перенести цикл в C++ 6:22 Дом горит 6:37 Начинаем заново: Pebble 6:54 Обходной путь GIMP 7:45 ​​Компактирование только для удаления 8:33 Включение по умолчанию, затем по умолчанию 8:55 Ключи диапазона: удалить, сохранить историю 9:53 Кто управляет Pebble, а кто нет до 10:47 Генеалогическое древо Плейлист серии:    • LSM tree   Предыдущая серия: EP4 Как RocksDB стала SQLite среди систем хранения данных #lsmtree #cockroachdb #pebble #rocksdb #database