Классика баз данных - статьи

       

в большей мере собирают данные,


Некоторые приложения в большей мере собирают данные, чем обрабатывают запросы к ним. Например, система управления автопарком компании грузовых автомобильных перевозок или такси может регистрировать данные о текущей позиции движущегося средства намного чаще, чем позиции автомобилей запрашиваются диспетчеров автопарка. В этих случаях организацию индекса и B-дерева, в отличие от традиционного подхода, следует оптимизировать с целью повышения эффективности выполнения операций вставки и обновления, а не запросов.
Другой областью применения методов, обсуждаемых в этом обзоре, является индексирование непрерывных потоков данных. Достаточно хорошо понятна фильтрация потоков "на лету", но для потоков, содержащих идентификаторы объектов реального мира, часто требуется сопоставление со статическими данными, а также с другими потоками. Поэтому крайне необходима возможность сбора потоковых данных, обычно в порядке их поступления, а также их индексирования по атрибутам, отличным от времени поступления. Иногда требуется несколько индексов, поддерживающих разные порядки. Например, для обеспечения эффективного и близкого к мгновенному обнаружения случаев мошенничества в потоке данных о транзакциях с кредитными карточками может потребоваться индексирование по номеру карты, идентификационным данным клиента (клиент может потерять несколько кредитных карт в одно и то же время) и данным о продавце (нечестный служащий может мошенническим образом расплачиваться кредитными картами многих клиентов).
Далее мы предполагаем, что эффективность операций обновления и вставки является более важной, чем эффективность обработки запросов. Если читателя не интересуют такие приложения, то к его B-деревьям следует применять традиционные оптимизационные методы, а не методы, обозреваемые в этой статье. Кроме того, мы предполагаем, уже применен какая-либо регулировка рабочей нагрузки, например, выработана "наилучшая" политика регистрации данных о текущем местоположении автомобилей, так что оставшиеся запросы на обновление действительно должны быть отражены во всех рассматриваемых индексах. Наконец, мы предполагаем, что учитывается возможность аппаратной поддержки, и она используется, насколько это возможно и уместно, например, используются расслоение дисков и твердотельные диски или дисковые буфера.

Содержание раздела