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

Алексей Миловидов—Не слишком глупые указатели в ClickHouse

C++ Russia — Конференция по разработке на Cpp

0:00 / 0:00

Алексей Миловидов—Не слишком глупые указатели в ClickHouse

3 556 просмотров · 7 лет назад
C++ Russia — Конференция по разработке на Cpp
16,8 тыс. подписчиков
3 556 просмотров · 7 лет назад
Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd — — . . . ClickHouse — column-oriented DBMS. Конвейер обработки данных в ClickHouse оперирует кусочками столбцов — массивами однородных данных среднего размера. Для управления ресурсами для этих объектов было бы логично использовать std::shared_ptr либо интрузивный указатель со счётчиком ссылок. А возможность разделить владение очень удобно подходит для реализации common subexpression elimination в запросах. Но на практике оказалось, что shared_ptr недостаточно безопасен. Нам пришлось реализовать новый вид указателей, с помощью которого можно точно контролировать модификации объекта. В докладе будет описана механика реализации этих указателей, детали их использования для сложных структур данных, примеры современных возможностей C++, необходимых для реализации. Также будет рассказано про несколько возможностей, которых не хватает в стандарте C++, чтобы сделать реализацию более простой.