Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда - и то, и другое.
Что особенного в in-memory DBMS, и чем работа такой программы отличается от произвольной высоконагруженной системы, написанной на С, С++, Java?
В своём докладе я расскажу о специализированных алгоритмах и структурах данных для хранения данных в RAM:
- аллокация памяти без компромиссов: почему это возможно только в СУБД;
- хэши и ассоциативные массивы: как сделать их не только быстрыми, но и компактными;
- как может быть реализовано конкурентное обновление одних и тех же данных в памяти без блокировок.
"Узкие места" в СУБД в памяти настолько существенно отличаются от аналогов в "классических" СУБД, что простота и элегантность являются необходимым условием выживания. Борьба идёт за байты и инструкции, и сложный код просто не может работать эффективно. Я расскажу, как простые решения для обработки транзакций в памяти позволяют упростить и ускорить репликацию, откат при аборте транзакции, поддержку "продвинутых" возможностей, таких как триггеры и изменение схемы данных.
Презентация доклада:
Запись выступления: