Современные информационные системы могут хранить огромные объемы данных - десятки и даже сотни терабайт. Однако для работы с такими массивами требуются специализированные средства, им был посвящен семинар "Многогранность отношений с информацией: хранение, управление, защита, доступ", проведенный компанией "Verysell Проекты". На семинаре в основном обсуждались решения Sun и Oracle.
Как полагают в Oracle, проблемы возникают из-за того, что хранилище ничего не знает о структуре данных, хранящихся в нем. Например, чтобы получить одно число для отчета, база запросит из дискового хранилища огромный файл данных, который будет считан с дисков и передан по сети хранения. То есть проблемы с производительностью возникают из-за слишком жесткого разделения системы на сервер СУБД и сеть хранения данных.
Чтобы решить описанную проблему неэффективного чтения и передачи данных, Oracle и Sun разработали технологию, которая позволяет переместить часть "интеллекта" СУБД в системы хранения данных. Это решение называется Exadata V2, оно было представлено Sun и Oracle в сентябре прошлого года (см. "Oracle и Sun выпускают первый совместный продукт", Computerworld Россия, № 30, 2009).
Exadata V2 представляет собой программно-аппаратный комплекс для работы с большими объемами данных - до 100 Тбайт в одной монтажной стойке, которые могут быть объединены в кластер из восьми устройств. Оптимизация обработки больших массивов в Exadata V2 достигается за счет того, что часть запроса обрабатывается на серверах хранилища. В результате и диски не считывают полный объем базы данных, и сеть передачи данных используется более эффективно.
В каждом Exadata V2 есть устройства трех типов: серверы хранилища с подключенными к ним дисками (Exadata Storage Server Grid), серверы баз данных (Oracle Database Server Grid) и коммутаторы InfiniBand. На одно устройство может приходиться до 14 серверов хранилищ и до восьми серверов баз данных. Оба типа серверов основаны на новой версии серверных процессоров Intel Xeon E5540, которые построены на ядре Nehalem. Серверы базы данных занимаются распределением запросов на серверы хранения и оптимизацией полученных результатов, а выборки данных выполняют серверы хранения, к каждому из которых можно подключить до 12 дисков SAS или SATA.
Если для хранения данных используются более объемные, но менее скоростные диски SATA, то объем хранящихся данных можно увеличить, однако скорость доступ к ним будет меньше, чем при использовании дисков SAS. В то же время для оптимизации потоков данных в каждом сервере хранилища могут быть установлены до четырех карт буферной флэш-памяти Sun FlashFire общим объемом 96 Гбайт, которые обеспечивают более быстрый доступ к наиболее востребованным данным. Причем работа флэш-буфера не нарушается при проведении резервного копирования - система распознает административные команды и не задействует для их выполнения кэш.
Еще одной технологией, которая повышает производительность базы данных, является сжатие данных Hybrid Columnar Compression, которое в некоторых случаях может сократить объем, занимаемый данными, до десяти раз. Данные группируются по столбцам и затем сжимаются. Это позволяет сократить время чтения информации с диска. Кроме того, индексы таблиц базы данных также хранятся в серверах хранилищах, что сокращает время на выборку данных - сервер хранилища при некоторых условиях может вообще не обращаться к дискам. Это происходит в том случае, если записанные на нем данные гарантированно не соответствуют условиям SQL-запроса.
Для приобретения подобного решения компании придется потратить от 300 тыс. долл. за четверть стойки до 1 млн долл. - за целую. К этим расходам придется добавить необходимое количество лицензий на Oracle, причем могут быть использованы лицензии для стандартных версий СУБД. Отдельно также приобретается программное обеспечение Exadata Storage Software, которое устанавливается на серверы хранилища.