2020/09/15 13:43:56

Проблемы современных СУБД:
Нужен ли морю данных океан «железа»?

Как современные вычислительные мощности и программное обеспечение справляются с растущими объёмами данных.

Содержание

Основная статья: СУБД

Системы управления базами данных остаются одной из самых динамично развивающихся ИТ-отраслей. Лучше всего это подтверждает экономика. По информации IDC, мировой объём рынка баз данных в 2018 году составил 46 млрд. долларов, и вырос на 18,4% к 2017 году. А инвестиционная компания William Blair прогнозирует, что до 2022 года эта сумма будет расти на 8,4% в год.

За этими колоссальными цифрами стоят реальные проекты и реальные люди. По данным db-engines, на сегодняшний день в мире существуют и активно развиваются 358 СУБД. И поиски новых, эффективных решений по управлению данными не прекращаются во всём мире ни на минуту.

С ростом объемов данных возникают все более сложные вызовы эффективного управления ими

Лавина данных

На развитие новых систем управления данными влияют два фактора.

Первый фактор – поистине фантастический рост объёма данных. В 2018 году агентство Forbes заявило, что 90% всех мировых данных были созданы за последние 2 года. По оценке IDC, объём глобальных данных вырастет с 33 зеттабайт в 2019 г. до 175 зеттабайт в 2025 г.

Между тем, компьютерные мощности за последние 15 лет практически не изменились. Первый процессор Pentium 4 с тактовой частотой 3,0 ГГц был представлен ещё в 2004 году и с тех пор этот показатель если и вырос, то незначительно. Но производители «железа» попытались достойно встретить лавину данных. Они стали добавлять в процессоры всё больше ядер, появилась гиперпоточность, а для повышения производительности добавлено больше кэша. Дальнейшие попытки совершенствования архитектуры пока упираются в чисто физические ограничения – размер кристалла, энергопотребление, теплоотвод [1].

Получается, что современные процессоры – это почти идеальное сочетание быстродействия, габаритов и стоимости для текущего уровня технологий. Но большая часть создаваемого сегодня ПО не может максимально использовать всю мощь многоядерных процессоров. Более того, практически все проблемы современных ЭВМ так или иначе вызваны программным обеспечением.

Попытки решения

Свой ответ на увеличение количества и сложности данных попытались дать и разработчики ПО. С появлением многоядерной архитектуры реляционные СУБД отошли в массовом сознании на второй план. Зато начали активно развиваться NoSQL-решения: in-memory, key-value, документориентированные и другие СУБД. Они позволяют строить и эффективно работать с распределёнными системами, и, что важно, демонстрируют значительно более эффективное использование современного многоядерного оборудования. Но и тут конечные потребители часто упираются в проблемы.

Основная проблема заключается в том, что in-memory решения подразумевают высокую стоимость оборудования и масштабируются только введением новых узлов. Key-value или колоночные системы зачастую предлагают ограниченную функциональность и обеспечивают меньшие гарантии по согласованности данных.

В целом, распределённые системы не являются абсолютным решением. Во-первых, существует множество задач, которые не поддаются масштабированию в современных архитектурах распределённых баз данных. А во-вторых, изначальное игнорирование возможностей вертикального масштабирования приводит к нерациональному использованию многоядерного оборудования.

Наращиваем мощности?

Между тем, конечные пользователи сегодня активно наращивают вычислительные мощности и хранилища, отвечая на рост объёма данных и на растущую сложность задач по их обработке. Российский рынок серверов в 2019 году вырос на 7,6% к прошлому году. Отечественные компании закупили 137599 устройств различных конфигураций более чем на миллиард долларов[2].

Так, например, в апреле 2020 года Федеральная налоговая служба объявила тендер на закупку СУБД и серверов для ключевой информационной системы ведомства. Общая стоимость проекта – 9,5 млрд. рублей. В состав закупки входят: четыре СУБД, 12 серверных машин баз данных, два межсетевых экрана и четыре комплекта ПО системы хранения баз данных.

Конечные пользователи сегодня активно наращивают вычислительные мощности и хранилища, отвечая на рост объёма данных и на растущую сложность задач по их обработке

Каждая из машин баз данных должна иметь объем неформатированного дискового пространства не менее 2 352 Тбайт, доступную ёмкость хранения не менее 953 Тбайт, суммарное количество процессорных ядер в серверах баз данных не менее 384 штук, суммарный объем оперативной памяти, установленный в серверах баз данных, не менее 6 Тбайт. Оборудование должно обеспечить полосу пропускания флэш-памяти при выполнении SQL-запросов не менее 350 Гбайт/с.[3]

Сейчас ключевые объекты ИТ-инфраструктуры построены на ПО и «железе» производства Oracle. Незадолго до объявления тендера ФНС выступила с заявлением о том, что сможет перейти на отечественное ПО не ранее, чем через десять лет. А пока что «по совокупности функциональных, технических и эксплуатационных характеристик программное обеспечение, сведения о котором включены в Реестр российского ПО, не соответствует установленным требованиям к ПО системы управления базами данных, являющемуся объектом закупки», – говорится в сопроводительных документах тендера[4].

Справятся ли эти фантастические мощности с потоком данных, который год от года увеличивается и усложняется в геометрической прогрессии – вопрос открытый.

Что дальше?

Но можно ли при обработке даже таких больших потоков данных не тратиться на очередной «суперкомпьютер», а максимально использовать имеющееся «железо»?

Для этого от современной СУБД требуется:

  • использовать современное многоядерное оборудование с максимальным эффектом.
  • оптимально задействовать серверные ресурсы, включая большие объёмы оперативной памяти. Сбалансированная работа как в режиме вытеснения данных, так и в режиме «всё в памяти»
  • обрабатывать данные с высокой скоростью
  • надёжно и быстро синхронизироваться в децентрализованных приложениях.

Иными словами, СУБД должна объединить в себе все лучшие черты классических и in-memory- решений. Но пока никому не удалось построить гибридную систему с привычной функциональностью на новых принципах.

Попытку создать такое решение предприняла воронежская компания РЕЛЭКС, которая занимается вопросами обработки данных уже тридцать лет. Постоянно развивая и совершенствуя флагманский продукт – отечественную защищённую СУБД ЛИНТЕР, разработчики неизбежно столкнулись со всеми вышеизложенными проблемами архитектур СУБД. Несколько лет назад компания начала целенаправленные работы по созданию перспективной СУБД нового поколения. Разработка ориентирована на современное многоядерное оборудование.

В следующих статьях цикла читатели смогут ознакомиться с предлагаемой новой архитектурой СУБД и свойствами нового продукта, который формируется в настоящее время.

Следующие статьи цикла

Что мешает современным СУБД работать в полную мощность на современном оборудовании

Примечания