Релиз БД Apache Cassandra 0.7

11.01.2011 15:50

Организация Apache Software Foundation объявила о выходе релиза распределенной БД Cassandra 0.7, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надежных хранилищ огромных массивов данных, представленных в виде хэша. Изначально проект был разработан в недрах Facebook и в 2009 году передан под покровительство фонда Apache.

Рабочие промышленные решения на базе Cassandra развернуты для обеспечения сервисов таких компаний, как Cisco, Cloudkick, Reddit, Digg, Rackspace и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra, насчитывает более 400 машин. По утверждению главного разработчика ресурса Reddit, Cassandra обеспечивает возможность практически линейного масштабирования при увеличении объема данных. Например, за год трафик Reddit возрос более чем в три раза, возможности масштабирования Cassandra позволили в прозрачном режиме адаптировать инфраструктуру к возросшей нагрузке путем простого добавления новых серверов.

БД Cassandra написана на языке Java и объединяет в себе полностью распределенную hash-систему Dynamo. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности. Cassandra относится к категории хранилищ повышенно устойчивых к сбоям: помещаемые в БД данные автоматически реплицируются на несколько узлов распределенной сети или даже равномерно распределяются по нескольким дата-центрам. При сбое узла, его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер Cassandra также производится на лету, без дополнительного ручного вмешательства и переконфигурирования других узлов.

Ключевые улучшения Cassandra 0.7:

  • Добавлена поддержка вторичных индексов, позволяющих на стороне клиента увеличить эффективность запросов с локального хранилища узла. Поддерживает динамическое создание и удаление вторичных индексов;
  • Поддержка строк огромного размера. Поддерживается размещение до двух миллиардов столбцов в строке;
  • Возможность автоматического изменения online-схемы: клиентское API позволяет добавлять и изменять описание объектов без перезапуска кластера;
  • Поддержка указания времени жизни для данных в столбцах;
  • Поддержка записи и чтения содержимого кэша;
  • Расширение возможности CLI-клиента: новые функции для работы со столбцами, мета-данными, поддержка изменения схемы, установки времени жизни для столбцов и прямой работы с бинарными данными.