Идеальная машина баз данных должна иметь один бесконечно быстрый процессор с бесконечной памятью, обладающей бесконечной пропускной способностью, и быть бесконечно дешевой (бесплатной). При наличии такой машины не надо заботиться об ускорениии, масштабируемости и параллелизме. К несчастью, на современном уровне технологии такой идеальной машины не существует, хотя имеющаяся технология обещает нечто подобное в обозримом будущем. Современная технология обещает одночиповые процессоры, быстрые диски большой емкости и электронную основную память большой емкости. Эта технология также обещает, что каждое из таких устройств будет весьма недорогим по сегодняшним меркам, всего несколько сотен долларов каждое.
Таким образом, проблема состоит в создании бесконечно быстрого процессора на основе бесконечно большого числа процессоров конечной скорости и создания бесконечно большой памяти с бесконечной пропускной способностью на основе бесконечного числа запоминающих устройств конечной скорости. Математически эта проблема представляется тривиальной, однако на практике в большинстве случаев при добавлении нового процессора все остальные начинают работать чуть медленнее. Если замедление (помехи) равно 1%, то максимальное ускорение равно 37, и эффективная мощность 1000-процессорной системы составляет лишь 4% эффективной мощности однопроцессорной системы.
Каким образом может быть построена масштабируемая многопроцессорная система? Стоунбрейкер (Stonebraker) предложил следующую простую классификацию для целого спектра разработок (см. рис. 4 и 5) [29].
Рисунок 4.
Принципиальная схема аппаратного решения без совместного использования ресурсов. Каждый процессор имеет свою память и один мли более дисков. Процессоры поддерживают связь через высокоскоростную соединительную сеть. Примерами являются Teradata, Tandem, nCUBE и последние модели VAXcluster.
Рисунок 5.
Схема с совместным использованием памяти и дисков. Мультипроцессор с общей памятью соединяет все процессоры с использованием глобальной совместно использумой памяти.