GlobalsDB — универсальная NoSQL база данных. Часть 2

GlobalsDBЧасть 1.

Моделируем 4 вида NoSQL-баз с помощью GlobalsDB

Будем реализовывать схемы хранения как в Redis, memcached, Cassandra, Neo4, SimpleDB, MongoDB

Перед тем как мы начнём моделировать различные виды NoSQL-баз, давайте взглянем на глобалы чуть более детально и определим некоторые термины, которые будем использовать позднее.
Читать далее

GlobalsDB — универсальная NoSQL база данных. Часть 1

GlobalsDB

От переводчика

На мой взгляд на Хабре мало информации о бесплатной NoSQL-базе GlobalsDB. Оригинальная статья написана в августе 2011 года и ещё актуальна. Перед вами первая часть. Во второй части будет рассказано как с помощью GlobalsDB моделировать различные типы NoSQL-баз.

Роб Твид (Rob Tweed)

Введение

GlobalsDB — бесплатная база данных, которая использует для сохранения данных механизм Глобальных Постояннохранимых Переменных (Global Persistent Variables), т.е. переменных значения которых автоматически сохраняются на жёстком диске. Они представляют собой абстракцию над бинарными деревьями (B-trees) и могут быть использованы для хранения больших объёмов данных представленных как многомерные разреженные массивы.

С помощью Глобальных Постояннохранимых Переменных (обычно называемых «глобалами», поэтому и база называется GlobalsDB) можно выразительно и высокоэффективно решать все обычные задачи, для которых принято сегодня использовать различные NoSQL-базы.
Читать далее

Новые визуальные HTML5 ZEN-компоненты в СУБД Caché 2013.2

Стоит отметить, что новые визуальные HTML5 компоненты, интерфейс которых оптимизирован в том числе и под мобильные устройства, и которые используют формат JSON для получения данных, появились уже в СУБД Caché версии 2013.1, но не все из них пока работают «в полную силу».

Это такие компоненты как:

  • %ZEN.Component.accordionMenu
  • %ZEN.Component.toolbar
  • %ZEN.Component.navigator
  • %ZEN.Component.lookup
  • %ZEN.Component.dataGrid

В справочнике классов вы можете найти всю документацию по этим компонентам. Здесь же будут приведены несколько вводных примеров их использования (со скриншотами).
Читать далее

Новое в СУБД Caché 2013.1: встроенная поддержка WebSockets

В одной из предыдущих статей уже рассматривалась работа с WebSocket на примере собственной серверной реализации этого протокола поверх обычных сокетов.

В СУБД Caché 2013.1 CSP-Шлюз теперь включает поддержку спецификации HTML 5 для WebSocket-соединений между веб-сервером и HTML 5 совместимым браузером. Эта функция доступна для Apache 2.2 и выше, и для IIS 8.0, который является частью Windows Server 2012.

Поскольку в Caché 2013.1 уже встроен Apache 2.4, мы будем наши примеры запускать именно на нём.
Для реализации клиентской части использовался фреймворк ZEN, но вы можете переделать примеры и на технологию CSP или любую другую.

Итак, приступим…

Релиз СУБД Caché 2013.1

Вышла новая версия Caché 2013.1 Что нового?

Развитие функционала

  • дальнейшее развитие EXtreme Event Persistence;
  • поддержка WebSocket;
  • расширенная поддержка JSON;
  • новый редактор панелей в BI DeepSee.

Повышение скорости разработки

  • multiсompile классов;
  • новая команда COS return;
  • args по ссылке;
  • %Find для Caché SQL.

Улучшение производительности

  • производительность обработки XML +50%;
  • улучшение производительности de-journaling;
  • повышение производительности ROLLBACK до 20%;
  • увеличение лимита глобального буфера до 16 ТБ;
  • увеличение лимита разделяемой памяти до 1 ТБ;
  • построение индексов класса с минимальным временем простоя — %Library.IndexBuilder;
  • эскалация блокировок;
  • увеличение производительности конкурентных обновлений — до 30%.

Полная версия документа на английском языке.
Обо всем по порядку и о других изменениях версии под катом.
Читать далее

Реализация фоновой загрузки файлов на сервер Caché

У разработчиков веб-приложений на Caché и Ensemble часто возникает задача «file upload» — загрузки файлов с браузера. Недавно на форуме по Caché на SQL.ru снова возникло несколько вопросов о том, как сделать фоновую загрузку файлов. Решил описать как это можно сделать с использованием технологий CSP и ZEN.
Читать далее

СУБД Caché + Erlang

В этой статье я расскажу о том, как мы подружили Caché + Erlang, и зачем нам это нужно. СУБД Caché была выбрана в качестве хранилища данных. Также мы создали и эксплуатируем MCA (Middleware for Caché Applications) — промежуточное программное обеспечение, обеспечивающее конкурентную модель взаимодействия Erlang и Caché.

Для взаимодействия Erlang и Intersystems Caché реализованы возможности:

  • Обрабатывать в Caché сообщения из Erlang, транслируя Erlang tuples (внутренний древовидный формат данных Erlang) в глобалы Caché.
  • Посылать из Caché сообщения процессам Erlang, транслируя глобалы Caché в Erlang tuples.

Разработанное MCA состоит из трёх основных компонент:

  • Message Dispatcher(MD) — управляет обменом сообщениями в конкурентных условиях между различными Erlang-node(EN) и Caché-процессами, обеспечивает кэширование сообщений по определенным правилам. Запускается в соответствующем EN.
  • C-node — обеспечивает подгрузку С/C++ библиотек и обмен сообщениями между ними, взаимодействие системы с shared-memory, EN, CallIn/CallOut (функциональностью, реализованной в Caché на языке С) и т.д . На данный момент к С-node, для веб-приложений, c использованием Caché, нами подключены библиотеки для поддержки XSLT преобразования, обработки регулярных выражений.
  • Porte – шлюз обмена сообщениями (Messaging Gateway) c MD для Caché. Запускается как отдельный background job, который будем называть Porte-job(PJ).

Как это работает?

Caché + Java + Flex. Особенности интеграции технологий. Часть 3

Как и было обещано во второй части эта статья посвящена исключительно практическим примерам, демонстрирующим особенности взаимодействия Caché + Java + Flex. Начнем с преобразования типов данных на протяжении всей связки. Мы не стали заострять внимание на преобразованиях таких типов данных, как Integer, Float, String, Boolean, поскольку данные типы идентичны в Caché и Java (а в ActionScript все числовые типы переходят в Number). Другое дело коллекции объектов. Их преобразование проходит достаточно нетривиально, поэтому остановимся на них подробнее.
Читать далее

Caché + Java + Flex. Часть 2

В первой части статьи мы рассмотрели комбинацию Caché + Java. Здесь будет показана структура проекта непосредственно реализующего комбинацию Caché + Java + Flex, а также основные инструменты и их настройки, используемые для её реализации. Стоит отметить, что здесь будет приведен лишь общий вид взаимодействия, в то время как, конкретные примеры будут рассмотрены в заключительной части. Начнем с описания модулей, входящих в состав проекта, и постепенно перейдем к особенностям их взаимодействия.
Читать далее

Caché + Java + Flex, или как мы делали систему управления учебным планированием

В этой серии статей мы постараемся подробно рассмотреть основные аспекты использования данной связки. Мы применили этот комбайн для реализации одной из подзадач проекта по разработке интеллектуальной системы автоматизированного управления учебным планированием. Для лучшего понимания, стоит сказать несколько слов о самом проекте.

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

По задумке, к каждому участнику процесса формирования учебного плана (например заведующему кафедры) привязывается агент, являющийся помощником и консультантом. В качестве инструмента, позволяющего легко реализовать таких агентов и обработать их поведение, была выбрана платформа JADE (Java Agent Development Framework).
Читать далее