Релиз Apache БД Cassandra 0.8.0
6 июня 2011 года
После шести месяцев разработки представлен релиз распределенной БД Apache Cassandra 0.8, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надежных хранилищ огромных массивов данных, представленных в виде хэша. Изначально проект был разработан в недрах Facebook и в 2009 году передан под покровительство фонда Apache. Промышленные решения на базе Cassandra развернуты для обеспечения сервисов таких компаний, как Cisco, Cloudkick, Reddit, Digg, Rackspace и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra, насчитывает более 400 машин.
БД Cassandra написана на языке Java и объединяет в себе полностью распределенную hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объема данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности. Cassandra относится к категории хранилищ повышенно устойчивых к сбоям: помещаемые в БД данные автоматически реплицируются на несколько узлов распределенной сети или даже равномерно распределяются по нескольким дата-центрам. При сбое узла, его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер Cassandra также производится на лету, без дополнительного ручного вмешательства и переконфигурирования других узлов.
Из добавленных в новой версии улучшений можно отметить:
- Поддержка языка формирования структурированных запросов CQL (Cassandra Query Language), на первый взгляд напоминающего SQL, но существенно урезанного по функциональности. Например, можно выполнять только простейшие запросы SELECT с выборкой по определенному условию, но без поддержки сортировки и группировки. Добавление и обновление данных производится через единое выражение UPDATE, операция INSERT отсутствует (если записи нет, при выполнении UPDATE она создается). Из возможностей можно отметить поддержку пространств имен и семейств столбцов, создание индексов через выражение "CREATE INDEX". Драйверы с поддержкой CQL подготовлены для языков Python, Java (JDBC/DBAPI2) и JavaScript (Node.js);
- Поддержка распределенных счетчиков, дающих возможность создавать актуальные для всего хранилища атомарно инкрементируемые поля;
- Поддержка шифрования внутреннего трафика, передаваемого между узлами кластера Cassandra. Ранее, при работе узлов в недоверительной сети приходилось использовать неочевидные надстройки в виде создания туннелей поверх VPN;
- Возможность обновления на лету с ветки 0.7.x до версии 0.8, без остановки работы кластера. В процессе rolling-обновления, узлы обновляются и перезапускаются друг за другом в порядке очереди, не влияя на работоспособность кластера в целом.
- Поддержка выполнения операции упаковки базы в многопоточном режиме с возможностью регулирования пропускной способности для ограничения интенсивности выполнения операции упаковки;
- Возможность установки лимитов на общий размер используемой для memtable памяти. По умолчанию используется 1/3 всего размера кучи.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.