rtdb

Real-Time Database Engine for Geo-Spatial data

Всемерное проникновение информационных технологий во все сферы общества привело к появлению новой архитектуры вычислительных машин, объединенных в кластеры для поддержания горизонтального масштабирования информационных сервисов. При этом, требования к отдельным серверам кластера являются достаточно обычными - достаточно обычного клиентского компьютера. Объединенные в сеть такие компьютеры не только обеспечивают возможность хранения (и сохранности) больших данных, но и их анализ, а также масштабирование по количеству одновременных запросов. Беспрецендентный рост популярных сервисов (количественный и качественный), потребовал дальнейшего изменения архитектуры в сторону использования серверов с большим количеством оперативной памяти (128 Gb уже не редкость) и программной архитектуры систем управления базами данных, ориентированных на работу в оперативной памяти, а не на работу с относительно медленными дисками. Однако, такие системы, в основном, предоставляют довольно слабые возможности работы с данными, примитивные структуры данных (ключ-значение), оставляя всю работу на сторону серверного приложения. В частности, практически нигде нет полноценной поддержки пространственных данных, роль которых в последнее время сильно возросла и будет расти. Такие данные в прошлом являлись прерогативой специальных геоинформационных систем (ГИС), но в настоящее время, когда географическая привязка объектов существует практически для любого мобильного устройства, эти данные стали важнейшей составляющей информационного потока, которые можно использовать для таргетинга рекламных кампаний, отслеживания перемещения объектов, их агрегацию итд. Некоторые сервисы требуют доступа к таким данным в режиме реального времени, причем одновременно необходимо обслуживать миллионы запросов в секунду, как в случае мобильных устройств. Такие требования привели к необходимости создания новой базы данных, ориентированной на работу с пространственными данными в памяти, масштабируемую как на количество данных, так и на большую производительность для приложений реального времени в условиях высокой конкурентности. Одним из многообещающих подходов для обеспечения ультра-производительности является использование параллельных алгоритмов в графических процессорах, в которых число процессоров достигает нескольких тысяч, а размер оперативной памяти - 12 гигабайт. Наличие интерфейсов и библиотек (CUDA, OpenCL) для доступа к графическому процессору позволило разрабатывать приложения, которые используя основной процессор для своей работы, могут выполнять некоторые операции на большом количестве графических процессорах. Примером запроса, который может быть существенно ускорен при использовании графических процессоров, является анализ положения объекта(объектов) относительно заданных сложных контуров. Важной задачей для таких баз данных является сохранность данных после выключения питания и быстрое возобновление работы. Одним из подходов является использование существующих традиционных СУБД для хранения данных на диске.

Эффективные методы работы с пространственными данными в памяти слабо изучены, поэтому требуется проведение большой исследовательской работы по разработке, реализации и тестированию структур данных и параллельных алгоритмов.