ORM – это библиотека, описывающая модель данных поверх динамических таблиц YT и предоставляющая удобную абстракцию между пользовательским кодом и слоем хранения данных. . Библиотека позволяет описывать объекты и связи между ними с помощью protobuf-сообщений, а также с помощью protobuf-аннотаций позволяет настраивать вторичные индексы, хранение истории по наборам полей и другую функциональность. Посредством кодогенерации из данного описания объектов строится набор классов и функций на С++, с которыми уже взаимодействует пользовательское приложение.
С помощью ORM внутри Яндекса построено два крупных сервиса: YP – ключевая часть RTC, отвечающая за хранение метаинформации обо всех хостах Яндекса, сервисах и их подах, Grut – единая база рекламы, отвечающая за её показ и модерацию.
Объектная модель как YP, так и Grut насчитывает десятки видов взаимосвязанных объектов. Также оба сервиса работают в режиме real-time и хранят десятки терабайт информации в динамических таблицах YT.
Мы свяжемся с вами в течение недели.