В системах хранения данных каждая быстрая операция записи переносит недоделанную работу в другое место: возврат успеха сразу после копирования байтов в память оставляет риск потери при крахе машины, ожидание локального fdatasync() на SSD переживает сбой процесса и ядра, но не потерю диска или хоста, а запись на сетевой том, в объектное хранилище или на большинство реплик добавляет в каждую запись сетевую задержку и копирование, но переживает больше отказов.
Syscall скрывает разную латентность и разные гарантии, а нотация Big O показывает лишь рост работы с размером ключа и значения, но не стоимость flush'а, удаленного HTTP-запроса или сетевого round-trip перед подтверждением.
Быстрые GET, PUT и DELETE возможны только потому, что индекс хранит последние значения, несколько записей делят один flush, а удаление и компактация откладываются "на потом", что требует ограничений на размер файлов и очередей, иначе дешево выглядящий путь лишь прячет растущую очередь.
Всегда знайте где платить за скорость
17.08.2026
Похожее
30.07.2026
Не то время
Вторая статья автора в серии "Beyond Happy Path Engineering". Автор разбирает, к...
24.07.2026
Виртуальная память
Масштабное погружение в виртуальную память от самых основ. Туториал прикольно на...
23.07.2026
Научные статьи
Это интерактивная семантическая карта ~3 миллионов статей arXiv. Авторы собирали...
21.07.2026
Интернет от самых основ
Масштабный интерактивный разбор устройства интернета от первых принципов до наши...