• nav


Эволюция NoSQL, основные преимущества перед SQL

Cassandra

Cassandra-это система управления базами данных, разработанная компанией Facebook для хранения огромных объемов данных, распределенных между различными узлами. Целью Cassandra было создание СУБД, которая не имеет единой точки отказа и обеспечивает максимальную доступность.

Кассандра-это в основном база данных хранилища столбцов. В некоторых исследованиях Cassandra упоминается как гибридная система, имеющая много общего с Bigtable от Google и DynamoDB от Amazon.

Особенности Cassandra:

Когда происходит сбой в одном из узлов Кассандры, данные на этом узле будут недоступны, однако другие узлы (и данные) по-прежнему будут работать.

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

Относительно простой в использовании клиентский интерфейс. Кассандра использует Apache Thrift, кросс-языковой клиент RPC, но большинство разработчиков предпочитают альтернативы с открытым исходным кодом, построенные поверх Apple Thrift, такие как Hector.

Одной из особенностей Cassandra является репликация данных. По сути, она отражает данные на другие узлы кластера. Репликация может быть случайной или специфичной для обеспечения максимальной защиты данных путем размещения узла в другом центре обработки данных. Другой особенностью Cassandra является политика секционирования, определяющая, где и на каком узле разместить ключ. Расположение может быть случайным или упорядоченным. При использовании обоих типов политик секционирования Cassandra удается найти компромисс между балансировкой нагрузки и оптимизацией производительности запросов.

Согласованность. Все узлы должны быть актуальными в любой момент времени с последними значениями. Это сложный настраиваемый процесс, поэтому Cassandra поддерживая баланс между операциями репликации и чтения/записи, позволяет разработчику настроить репликацию под свои нужды.

Чтение/Запись. Клиент отправляет запрос на один узел Cassandra. Узел в соответствии с политикой репликации хранит данные в кластере. Каждый узел сначала выполняет изменение данных в журнале фиксации, а затем обновляет структуру таблицы с изменениями, и это происходит синхронно. Операция чтения осуществляется тем же образом: запрос на чтение отправляется на один узел, и этот единственный узел определяет, какой узел содержит данные, в соответствии с политикой секционирования/размещения.

MongoDB

MongoDB - это ориентированная на документы база данных, написанная на C++. База данных основана на хранилище документов, что означает, что она хранит значения (называемые документами) в виде закодированных данных JSON. Это очень важно, поскольку даже если данные вложены в документы JSON, они все равно останутся доступными через запросы и индексируемы.

В следующих подразделах описываются некоторые ключевые функции, доступные в MongoDB.

Как говорилось выше, MongoDB использует RESTful API. Для получения определенных документов из БД, создается документ запроса, содержащий поля, которым должны соответствовать требуемые документы.

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

Архитектура MongoDB

Подобно Cassandra, сегмент в MongoDB имеет схему репликации данных, которая создает набор реплик каждого сегмента, содержащего точно такие же данные. В MongoDB существует два типа схем реплик: Master-Slave репликация и Replica-Set репликация. Replica-Set обеспечивает большую автоматизацию и лучшую обработку для сбоев, в то время как Master-Slave иногда требует вмешательства администратора. Независимо от схемы репликации, в любой момент времени в наборе реплик только один сегмент выступает в качестве основного, все остальные сегменты реплики являются вторичными сегментами. Все операции записи и чтения переходят в основной сегмент, а затем распределяются равномерно (при необходимости) на другие вторичные сегменты в наборе.

На рисунке выше мы видим архитектуру MongoDB, описанную выше, показывающую серверы маршрутизаторов зеленым цветом, серверы конфигурации желтым цветом и сегменты, содержащие синие узлы MongoDB.

Следует отметить, что сегментирование (или обмен данными между сегментами) в MongoDB полностью автоматизировано, что снижает частоту отказов и делает MongoDB высокомасштабируемой системой управления базами данных.

Заключение

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

Рон Амадео
22/02.2019





ПОХОЖИЕ СТАТЬИ:

Сравнение Secure Erase и других методов удаления данных в гос. ведомствах

Почему мин.обороны США не использует программную очистку дисков? Рассмотрим методы удаления данных на HDD/SSD и дадим ссылки на программы очистки по ГОСТ и военным стандартам очистки секретных данных.

...

Проблемы утилизации носителей данных в ЦОДах

Недавний опрос экспертов по стиранию данных Blancco показывает, что большинство организаций не могут правильно утилизировать списанные диски, рискуя штрафами за разглашение информации о клиентах и сотрудниках или тратя сотни тысяч ...

Тренды хранения данных в 2019 году - прогноз Toshiba Electronics

Объем хранимых в мире данных не только продолжает расти, но и растет быстрее, чем прогнозировалось. Ожидалось, что доля данных, хранящихся на флэш- и твердотельных накопителях, увеличится, а количество данных, хранящихся на жестких...

Seagate Exos 10E2400 - тестируем гибридный SFF диск расширенной методикой

Этот гибридный жёсткий диск объёмом 2.4 Тб для серверов интересен тем, что поддерживает энергонезависимый кэш записи и имеет 16-гигабайтный NAND буфер чтения. Мы протестировали его, чтобы посмотреть, как кэш ускоряет приложения, им...

Выбираем внешнее хранилище для нетбуков

Вам не хватает встроенного SSD или HDD на нетбуке, и вы понимаете, что надо увеличить его дисковое пространство, но не знаете, каким способом? Стоит ли покупать внешний USB 2.0 диск или поддаться тенденциям и приобрести сетевое х...


НА ФОРУМЕ ГОВОРЯТ



НОВЫЕ СТАТЬИ
Переход с Intel Xeon на AMD EPYC: развенчиваем мифы, обходим подводные камни

Рядовые сисадмины и крупные IT-директора, когда речь заходит об AMD, задают порой совершенно детские вопросы, а мы на них отвечаем. Совместимость с существующим стэком, снижение TCO, вопросы производительности и поддержки....

Настраиваем Mesh-сеть на Keenetic: теория и практика

Узнайте, почему Mesh - самая горячая Wi-Fi технология этого года, почему там, где раньше были две точки доступа, теперь появляется и третья, и насколько роутеры Keenetic готовы к построению бесшовных Wi-Fi сетей в вашем ...