Введение в Apache Cassandra
Cassandra - это распределенная система управления базами данных с открытым исходным кодом и широким хранилищем столбцов, база данных NoSQL для обработки большого количества данных на многих стандартных серверах, которая обеспечивает высокую доступность без единой точки отказа. Он написан на Java и разработан Apache Software Foundation.
Авинаш Лакшман и Прашант Малик изначально разработали Cassandra в Facebook для поддержки функции поиска по входящим сообщениям Facebook. Facebook выпустил Cassandra как проект с открытым исходным кодом на коде Google в июле 2008 года. В марте 2009 года он стал проектом Apache Incubator, а в феврале 2010 года он стал проектом верхнего уровня. Благодаря своим выдающимся техническим характеристикам Кассандра становится настолько популярной.
Apache Cassandra используется для управления очень большими объемами структурных данных, разбросанных по всему миру. Он обеспечивает высокодоступный сервис без единой точки отказа. Ниже перечислены некоторые особенности Apache Cassandra:
- Он масштабируемый, отказоустойчивый и согласованный.
- Это база данных, ориентированная на столбцы.
- Его распределенный дизайн основан на Dynamo от Amazon и его модели данных на Big table Google.
- Он создан в Facebook и резко отличается от систем управления реляционными базами данных.
Cassandra реализует модель репликации в стиле Dynamo без единой точки отказа, но добавляет более мощную модель данных «семейства столбцов». Cassandra используется некоторыми крупнейшими компаниями, такими как Facebook, Twitter, Cisco, Rackspace, eBay, Netflix и другими.
Целью разработки Cassandra является обработка рабочих нагрузок с большими данными на нескольких узлах без единой точки отказа. Cassandra имеет одноранговую распределенную систему по своим узлам, и данные распределяются между всеми узлами кластера.
Все узлы Cassandra в кластере играют одинаковую роль. Каждый узел независим, в то же время взаимосвязан с другими узлами. Каждый узел в кластере может принимать запросы на чтение и запись, независимо от того, где на самом деле находятся данные в кластере. Когда узел выходит из строя, запрос на чтение / запись может обслуживаться другими узлами в сети.
Особенности Кассандры:
Кассандра стала популярной из-за своих технических особенностей. Вот некоторые особенности Кассандры:
- Простое распределение данных -
Он обеспечивает гибкость для распределения данных там, где вам нужно, путем репликации данных в нескольких центрах обработки данных.
Например:
Если есть 5 узлов, скажем, N1, N2, N3, N4, N5, и с помощью алгоритма разделения мы определим диапазон токенов и распределяем данные соответственно. У каждого узла есть определенный диапазон токенов, в котором будут распространяться данные. давайте посмотрим на диаграмму для лучшего понимания. - Гибкое хранение данных -
Cassandra поддерживает все возможные форматы данных, включая структурированные, полуструктурированные и неструктурированные. Он может динамически вносить изменения в ваши структуры данных в соответствии с вашими потребностями. - Эластичная масштабируемость -
Cassandra обладает высокой масштабируемостью и позволяет добавлять дополнительное оборудование для обслуживания большего числа клиентов и данных в соответствии с требованиями. - Быстро пишет -
Cassandra была разработана для работы на дешевом стандартном оборудовании. Cassandra выполняет невероятно быструю запись и может хранить сотни терабайт данных без ущерба для эффективности чтения. - Всегда на архитектуре -
В Cassandra нет единой точки отказа, и она постоянно доступна для критически важных бизнес-приложений, которые не могут позволить себе отказ. - Высокая производительность в линейном масштабе -
Cassandra линейно масштабируется, поэтому она увеличивает пропускную способность по мере увеличения количества узлов в кластере. Он поддерживает быстрое время отклика. - Сопровождение сделки -
Cassandra поддерживает такие свойства, как атомарность, согласованность, изоляция и долговечность (ACID) транзакций.