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

       

ChunkyStore


Основным объектом в ASAP является многомерный массив A (I, J, …, K). I, J, …, K называются индексами или измерениями, и их может иметься произвольное (конечное) число. В ASAP поддерживается набор примитивных типов данных (например, целые и плавающие числа, строки символов). Вероятно, в будущем появится средство определения абстрактных типов данных в стиле POSTGRES. Соответственно, измерения могут иметь любой тип, поддерживаемый системой. Кроме того, в ASAP предполагается, что для любого типа данных поддерживается линейная упорядоченность значений в стиле POSTGRES. Поэтому всегда известно следующее значение любого измерения. У измерения может иметься регулярный шаг (regular stride) (например, 1, 2, 3…) или нерегулярный шаг (irregular stride) (например, 1.2, 2.76, 4.3, …). Значением массива для любого набора значений измерений является кортеж значений атрибутов (tuple of attribute values). У каждого атрибута имеется имя, он содержит значения некоторого простого примитивного типа и может содержать неопределенное значение (NULL). Следовательно, значение массива, по существу, является реляционной таблицей.

В ASAP имеется система хранения ChunkyStore, в которой массивы представляются следующим образом:

  • Плотные массивы с регулярными шагами. В этом случае значения измерений не хранятся, и элементы данных упаковываются в память очевидным образом. Затем такие массивы декомпозируются в «чанки» («chunk»), которые содержат все значения для «супершага» в каждом измерении. Это делается аналогично тому, что делал Сунита Сараваги (Sunita Sarawagi, [Sar94]) при фрагментировании больших массивов. Чанки размещаются в крупных дисковых блоках (размером, например, от 64 Кб до 1 Мб), так что элементы массива легко адресуются.
  • Плотные массивы с нерегулярными шагами. В этом случае для каждого измерения имеется индекс, который упорядочивает значения этого измерения. Этот индекс сохраняется в дополнение к фрагментированным массивам.
  • Разреженные массивы с регулярными и нерегулярными шагами. Сохраняются только значения, отличные от неопределенных, вместе со значениями их измерений.

    Содержание  Назад  Вперед