Особенности использования NoSQL

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

производительности аппаратной платформы, на которой установлен сервер.

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

Горизонтальная масштабируемость обеспечивается следующими возможностями:

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

Кластеризация серверов Lotus Domino.

Организация и переконфигурация кластеров Domino возможна на работающей инфраструктуре серверов Domino (для включения сервера к кластер даже не требуется его перезагрузка).

Репликация.

Быстрая разработка (RAD) и развёртывание приложений. Для разработки приложений Domino Designer предоставляет разработчикам развитые сервисы для разработки документоориентированных приложений. Программный код и визуальные формы приложений физически храняться в базах данных, в которых они используются и выполняются.

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

Автономное выполнение приложений.

Клиент Lotus Notes позволяет локально (на компьютере пользователя) хранить базы данных Lotus Notes, реплицировать их с сервером Domino, работать с локальными базами данных при отсутствии подключения к серверу Domino, исполнять программный код сервера в локальных базах данных. Данная функциональность поддерживает полнофункциональную работу пользователя в отключенном от сервера состоянии (например, на ноутбуке). Изменение на локальном (для пользователя) компьютере и на сервере взаимно синхронизируются посредствам репликации.

Инфраструктура управления открытыми ключами (PKI).

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

Электронная цифровая подпись используется при аутентификации сервером пользователя и/или сервера, при определении уровня доверия выполняемому коду, при проверке достоверности почтовых сообщений, документов (записей в БД) и отдельных полей.

Шифрование применяется для почтовых сообщений, целиком баз данных, отдельных документов (записей в БД), отдельных полей и сетевого трафика между двумя серверами Lotus Domino, а также между сервером и клиентом Lotus Notes.

MongoDB

Тип - документо-ориентированная СУБД.

Разработчик - MongoDB.

Написана на C++.

ОС - кроссплатформенное программное обеспечение.

MongoDb - документо-ориентированная система управления базами данных с открытым исходным кодом, не требующая описания схемы таблиц.

Написана на языке C++ и распространяется в рамках лицензии AGPLv3.

При разработке авторы изходили из необходимости специализации баз данных, благодаря чему им удалось отойти от принципа один размер подо всё. За счёт минимизации семантики для работы с транзакциями появляется возможность решения целого ряда проблем, связанных с недостатком производительности, причём горизонтальное масштабирование становится проще. Используемая модель документов хранения данных (JSON/ BSON) проще кодируется, проще управляется (в том числе за счет применения так называемого бессхемного стиля (schemaless style), а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии. Нереляционный подход весьма удобен для создания баз данных, у которых горизонтальное масштабирование подразумевает разворачивание на множестве машин. Возможность обеспечивать наилучшую производительность должна существовать параллельно с поддержкой более обширного функционала, чем это позволяет использование пар ключ-значение (в чистом виде). Технология баз данных должна работать везде, начиная с серверов пользователей и виртуальных машин и и заканчивая облачными технологиями. MongoDB, по мнению разработчиков, должна заполнить разрыв между между простыми хранилищами данных типа ключ-значение (быстрыми и легко масштабируемыми) и большими реляционными СУБД (со структурными схемами и мощными запросами).

Основные возможности данной СУБД:

Документо-ориентированное хранилище (простая и мощная JSON-подобная схема данных);

Достаточно гибкий язык для формирования запросов;

Динамические запросы;

Полная поддержка индексов (объектов базы данных, созданных с целью повышения производительности поиска данных);

Профилирование запросов;

Быстрые обновления на месте;

Эффективное хранение двоичных данных больших объёмов, например, фото и видео;

Журналирование (запись событий) операций, модифицирующих данные в БД;

Поддержка отказоустойчивости и масштабируемости:

Асинхронная репликация, набор реплик и шардинг;

Может работать в соответствии с парадигмо