Тут прошла конференция FAST'21 про системы хранения. Они читаются легко (и есть видосы) и сами по себе не за гранью понимания, спасибо регламенту, что каждая статья должна быть максимум на 11 страниц без приложения.



Много разговоров про Intel Optane 900P, если кратко, то это NVM (non volatile memory), которая вставляется за место обычной RAM памяти. Случайные чтения/записи всего лишь 300-400ns (3-4x от latency RAM), когда как у NVMe SSDs порядка 15-16us, пропускная способность раз в 3-10 меньше, чем у RAM и на уровне NVMe дисков, а ещё DWPD (Drive writes per day) в 30 раз больше, чем у NVME, которые рассчитаны на 5 лет ежедневной перезаписи. Отличие сейчас в том, что такую железку можно свободно купить за большие деньги ($1200 долларов за 375GB плашку), но всё ещё дешевле, чем столько памяти. Память становится очень дорогой — половина стоимости сервера спокойно занимает, тренды в науке это тоже подхватывают.



1. ROART: Range-query Optimized Persistent ART



Авторы красивым способом модифицируют адаптивное сжатое префиксное дерево (или, в простонародье, сжатый бор), чтобы ускорить запросы на отрезке ключей различной длины в NVM памяти. Так как NVM добавляет хлопот, например, утечки памяти, если использовать обычные аллокаторы, статья много времени уделяет корректности, сборщику мусора. Все предыдущие труды либо имели ключи фиксированной длины, либо не следили за корректностью. Как по мне, красивая статья по не менее красивым структурам данных.



2. SpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage



Авторы предоставляют форк RocksDB (такая база данных от Facebook), в которой рассматривают, как сделать гибридное хранилище, где холодные данные лежат на "этих ваших старых SATA SSD", а горячие и метаданные на "Intel Optane 900P", да ещё и отказываются от Linux FS и делают всё через Intel SPDK (Storage Performance Development Kit). Окей, я верю, что Вы получили 2x уменьшение latency, ведь используется ну очень мощная железка без хождения в ядро.



Статья про далекое будущее, не знаю, кто может позволить хранить себе холодные данные на SATA SSD, которые уже на самом деле и не производятся. Для себя вытащил только SPDK на поиграться и что ext4 оверхед уже начинает быть заметным.



3. REMIX: Efficient Range Query for LSM-trees



LSM (Log-structured merge-tree) в последнее время всё больше и больше проникает в базы данных, так как она хорошо ложится под современные NVMe SSD. Авторы предлагают неплохую оптимизацию запросов на отрезке LSM деревьев за совсем немного памяти. Основная идея заключается в том, что создаются блоки размеров 16/32/64 от сконкатенированных уровней дерева и тем самым вместо 4 log(N) seek, используется log(4N) + eps. Бенчмарки, конечно же, на Intel Optane 900P



4. High Velocity Kernel File Systems with Bento



Да, файловая система на Rust, да, безопасно, дебаг предоставляется пользователю в отличие от FUSE. Статья хорошо учит как сделать хороший модуль на Rust для работы с ядром. Конечно, нет поводов не делать это в Rust, который просто не имеет проблем с памятью, но давать Best Paper Award мне кажется за такое слегка overkill. Любителям Rust обязательно обмазаться.



5. Learning Cache Replacement with CACHEUS



Все мы очень любим кешировние и знаем техники как LRU/LFU, авторы решили скомбинировать много известных техник в простую модельку машинного обучения градиентного бустинга. Получилось неплохо лучше. Было очень интересно почитать о методике как оценивать ускорения и на каких данных. Почему-то после прочтения статьи вспоминалась фраза от моего знакомого: "Чтобы ускорить приложение, надо добавить кеш, чтобы ускорить это же приложение через 5 лет, нужно убрать этот кэш. Тот, кто однажды понимает эту дуальность, познает performance". В общем, познавательно, нежели практично.



Были интересны статьи от Facebook. Но к сожалению, не все статьи впечатляют меня как человека из индустрии, например, статья по сжатиям логов, очередная идея со словарем, где строки заменяются на числа. Или очередные шедулеры NVME, но тут, признаюсь, я просто пока глуп, чтобы это понять. Развиваю свой вкус :)