В Cassandra 1.2 появилась возможность выполнения пакетных операций в атомарном режиме и обновленный вариант языка запросов Cassandra Query Language, CQL3.
Новая технология виртуальных узлов позволит упростить процесс управления кластерами, особенно при добавлении узлов или их реорганизации |
«Традиционно одним из главных достоинств Cassandra считалась высокая масштабируемость при развертывании на большом количестве машин относительно небольшой мощности», – отметил Джонатан Эллис, осуществляющий в Apache общее руководство проектом Cassandra. Эллис является также одним из основателей компании DataStax, предлагающей коммерческую поддержку этого программного обеспечения.
Однако в последнее время все больше организаций приобретают мощные серверы с увеличенным объемом оперативной памяти и дискового пространства. Такие серверы обладают улучшенным соотношением между ценой и производительностью. Выпуск обновленной версии Cassandra во многом связан с улучшением поддержки подобных машин.
СУБД Cassandra, разрабатывавшаяся изначально как внутренний проект Facebook и ставшая общедоступной в 2008 году, предназначена для хранения огромных массивов данных на большом количестве серверов. Сегодня эту технологию используют Adobe, Cisco, Disney, eBay, IBM, Netflix, Reddit, Spotify, Twitter и Williams-Sonoma.
В новой версии программного обеспечения появились средства поддержки виртуальных узлов (vnodes), предназначенных для быстрого восстановления функционирования системы в случае отказа отдельного сервера в кластере Cassandra. Кроме того, виртуальные узлы повышают общую производительность системы.
Поддержка виртуальных узлов относится к числу главных особенностей распределенного хранилища данных Amazon Dynamo, которое разработчикам послужило в качестве модели для использования Cassandra. На начальном этапе предпочтение было отдано упрощенной архитектуре, в которой один узел соответствует одному серверу.
Новая технология виртуальных узлов позволит упростить процесс управления кластерами, особенно при добавлении узлов или их реорганизации. Концепция виртуальных узлов предполагает возможность развертывания нескольких узлов на каждом сервере.
Поскольку отдельный виртуальный узел не забирает все ресурсы сервера, на каждом сервере может быть создано множество узлов. В случае отказа диска это позволяет быстро восстанавливать из реплик аналогичные узлы на других серверах. Продолжительность восстановления работоспособности вполне сравнима со временем копирования реплицированных данных с одного сервера.
Уменьшение масштабов узлов, развернутых на большом количестве серверов, обеспечивает сбалансированность нагрузки между всеми машинами в кластере.
«Каждый виртуальный узел управляется на сервере одним процессом Java, поэтому добавления большого числа процессов, обслуживаемых операционной системой, у нас не происходит, – пояснил Эллис. – Речь идет лишь о виртуализации ресурсов хранения».
Среди новых особенностей следует также отметить выполнение пакетных операций в атомарном режиме. Такая возможность нужна организациям, которым требуется целостность транзакций в рамках бизнес-процессов. Например, при ведении электронной торговли необходимо гарантировать оформление заказа даже в случае отказа жесткого диска в середине транзакции. Ранее для обеспечения целостности транзакций разработчикам приходилось самостоятельно встраивать в код механизмы повторного выполнения операций.
Язык CQL, используемый для выполнения запросов и выборки данных из базы данных Cassandra, также претерпел существенные изменения. В обновленной версии языка, CQL3, появился целый ряд новых запросов, упрощающих взаимодействие приложений с данными Cassandra. Теперь можно осуществлять выборку системной информации. Поддерживается новый тип данных – коллекции. Если, например, в едином блоке набора данных хранится множество адресов электронной почты, синтаксические конструкции языка позволяют делать выборку всех этих адресов.
Новая версия CQL помогает разработчикам лучше разобраться в процессе моделирования приложений Cassandra. Здесь есть механизмы для решения множества задач, имеющих общий характер.
В числе других функций, появившихся в версии Apache Cassandra 1.2, следует выделить отладочный инструмент трассировки запросов и политики конфигурирования на случай отказа диска. При отказе диска администратор может полностью остановить операции или продолжить их выполнение без гарантии успешного завершения. Кроме того, в новую версию интегрированы дополнительные компоненты, предназначенные для повышения производительности и устранения ошибок.
СУБД Cassandra распространяется с открытым кодом по лицензии Apache License version 2. Основанный в 1999 году фонд Apache Software Foundation курирует реализацию добровольцами около 150 проектов с открытым кодом.