Архитектура баз данных реального времени
Основное отличие архитектуры баз данных реального времени от классических СУБД заключается в размещении базы данных в оперативной памяти. Идея размещения базы данных в оперативной памяти достаточно очевидна, а основные усилия по оптимизации производительности промышленных РСУБД и так нередко сводятся к копированию довольно большого фрагмента БД с диска в память (так называемый кэш) и дальнейшей его обработки, минуя обращение к медленным операциям дискового ввода-вывода. Действительно, объем ОЗУ мощных серверов уже достигает десятков гигабайт, а 64-разрядные архитектуры постепенно добираются и до настольных ПК. И если сегодня есть сомнения относительно востребованности 64-разрядных вычислений в тех или иных областях, то только не в области РСУБД. Как известно, 32-разрядные процессоры позволяют непосредственно обращаться к 4-Гб оперативной памяти, а 64-разрядные способны адресовать 16 млн. терабайт, что фактически снимает какие-либо ограничения на размер базы данных, целиком размещаемой в ОЗУ. Сначала такие СУБД было принято относить к категории MMDM (Main Memory Data Manager), но в последние годы в обиход вошла аббревиатура IMDB (In-Memory Database). Скорость обработки информации инструментами IMDB в 10-20 раз превышает показатели традиционных "дисковых" РСУБД. Если вспомнить, что обращение к данным в ОЗУ осуществляется на несколько порядков быстрее, чем к тем, что находятся на диске, указанный выше выигрыш кажется весьма скромным. Дело, однако, в том, что сегодня традиционные РСУБД фактически тоже манипулируют большими наборами данных {например, теми, что запрашиваются чаще всего), предварительно извлеченными из дисковой подсистемы и помещенными в ОЗУ. Более того, если размер ОЗУ позволяет разместить там всю БД, то многие традиционные РСУБД так и делают. Что же нового в технологическом плане предлагают базы данных реального времени? Оказалось, что заложенное изначально предположение о том, что основным местом хранения данных в обычных РСУБД является жесткий диск, дает о себе знать самым существенным образом даже тогда, когда вся БД размещена в ОЗУ. Невозможно без риска нарушения обратной совместимости убрать из программы алгоритмы проверки наличия и подкачки нужных данных с диска. Поскольку время доступа к данным на диске и в памяти различается на несколько порядков, все методы оптимизации традиционных РСУБД ориентированы на сведение к минимуму числа обращений к диску и не особенно заботятся об экономии ресурсов процессора. В IMDB оптимизация обработки SQL-запроса гораздо более точна, поскольку здесь заранее известно, что данные всегда находятся в памяти, и поэтому остается лишь оценить число тактов процессора для каждого альтернативного плана реализации такого запроса. В IMDB, кроме того, совершенно другая структура хранения данных в ОЗУ. Обычные РСУБД копируют данные с диска целыми страницами. При этом структура их остается такой же, какой она была на диске, что, естественно, негативно отражается на алгоритмах обработки данных. Благодаря более рациональной схеме хранения накладные расходы (дополнительная память для временных данных) в IMDB не превышает 20% (в обычных РСУБД - до 50%).
|