Как я добавила групповой коммит в свою LSM-базу на Go и не пожалела

Синхронный WAL очень частое явление в базах данных, делая их durability максимальной. При таком исходе каждый батч записи это вызов fsync, и это дало мне 956k opr/s на 16кб значениях , звучит хорошо, но на самом деле: скорость записи упала в 5 раз . Поскольку в планах создать конкурентноспособное хранилище, я смотрела на то как справлялись с этим замедлением в RocksDB. И, если вы знаете хранилища на Go , где есть групповой коммит , то поделитесь пожалуйста, потому что я не смогла найти такого. В этой статье я расскажу: Что такое групповой коммит на пальцах Почему групповой коммит не для финтеха Как это реализовано у меня Как изменились цифры до и после внедрения Во сколько раз ScoriaDB с group commit быстрее BadgerDB и Pebble. Если вы пишете хранилище, логгер, кэш или просто любите копаться в LSM‑движках — добро пожаловать на борт, нас ждет короткое путешествие Узнать больше

https://habr.com/ru/articles/1043820/

#group_commit #fsync #WAL #LSMдерево #ScoriaDB #BadgerDB #Pebble #бенчмарки #производительность_баз_данных #Go

Как я добавила групповой коммит в свою LSM-базу на Go и не пожалела

Что такое групповой коммит Представьте, если бы в вашем мессенджере нельзя было отправить кучу фоток выделяя галочками. Вам нужно скинуть другу их 10 штук, приходится отправлять поштучно, а каждая...

Хабр

Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

Неделю назад я не думала, что буду писать базу данных . Начиналось всё с банального «хочу строчку в резюме». А получилось: LSM‑дерево, MVCC, снапшоты, Value Log, WAL, компакшн, Column Families и даже GC. Всё на чистом Go, без cgo. Плюс gRPC, REST, CLI и Docker из коробки. Рассказываю, как собирала конструктор, где наступала на грабли и почему fsync — это боль, и в конце даже небольшая любовная драма в CLI Узнать, что у меня получилось

https://habr.com/ru/articles/1032208/

#scoriadb #lsmtree #mvcc #keyvalue_database #go #транзакции #column_families

Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

Введение: Неделю назад я не думала писать такую базу данных Начиналось всё с банального желания пополнить свое резюме парой строчек. Листала сайты с разными проектами, чтобы...

Хабр