Компания Teradata впервые выдвинула многие идеи, представленные в этой статье. Начиная с 1978 года, они создают высокопараллельные, основанные на языке SQL системы без совместного использования ресурсов на базе массово производимых микропроцессоров, дисков и памяти. Системы Teradata действуют как SQL-серверы для пользовательских программ, запущенных на обычных компьютерах.
Системы Teradata могут иметь свыше 1000 процессоров и много тысяч дисков. Функционально процессоры Teradata делятся на две группы: интерфейсные процессоры (IFP) и процессоры-модули доступа (AMP). Интерфейсные процессоры поддерживают связь с основной машиной, осуществляют синтаксический разбор и оптимизацию запросов, а также координацию AMP во время выполнения запросов. Процессоры-модели доступа отвечают за выполнение запросов. Как правило, каждый AMP имеет несколько дисков и большую кэш-память. IFP и AMP соединены двойной избыточной древовидной сетью, называемой Y-сетью [33].
Каждое отношение разделено на основе хэширования между подмножествами AMP. При вставке кортежа в отношение к первичному ключу кортежа применяется хэш-функция для выбора AMP, где будет храниться этот кортеж. Как только кортеж поступает в AMP, применяется вторая хэш-функция для определения положения кортежа в его фрагменте отношения. Кортежи в каждом фрагменте располагаются в соответствии со значением этой хэш-функции. При заданном значении ключевого атрибута можно найти кортеж в единственном AMP. AMP проверяет свою кэш-память, и если в ней такого кортежа нет, то выбирает его за одно чтение диска. Поддерживаются также вторичные хэш-индексы.
Хэширование используется для расщепления вывода реляционных операторов в промежуточные отношения. Операторы соединения выполняются с использованием параллельного алгоритма сортировки-слияния. Вместо конвейерного параллельного выполнения при обработке запроса используется следующая стратегия: каждый оператор полностью выполняется во всех участвующих узлах, прежде чем начинается выполнение следующего оператора.
Компания Teradata инсталлировала множество систем, содержащих свыше 100 процессоров и сотни дисков. Эти системы демонстрируют почти линейные ускорение и масштабируемость на реляционных запросах и значительно превосходят по скорости традиционные машины основного класса при обработке больших (терабайтных) баз данных.