Switch lang: Русский \ English

Acapella Storage Use Cases


Применение

Обычно KV применяют для (When To Use)

Caching:

Quickly storing data for - sometimes frequent - future use.

TODO необходим пример работы с кешем из конфига nginx

можно поддержать попуплярные интерфейсы систем кеширования (memcache, redis,...), там просто get/set

Queue-ing:

Some K/V stores (e.g. Redis) supports lists, sets, queues and more.

  1. у нас есть DT - для хранения последовательностей
  2. остальные структуры у нас будут а) распределенные б) быстры, т.к. наш KV ориентирован на низкую задержку

TODO необходим сравнительный тест производительности, для этого надо сделать Github репозитарий для таких тестов и самим туда выложить. Cвой тест на линеаризуемость(jepson Test docker) и теты на производительность так, чтобы отчеты о запусках попадали к нам в виде письма, например требуются get/set/cas/большой плюс даст multicas/

Distributing information / tasks:

They can be used to implement Pub/Sub.

у нас есть Listen , но он одноразовый. Есть поддержка индивидуальный на ключ listen , на WS - многоразовый, который ловит несколько set подряд. Возможно на первое время при этом придётся ввести ограничение на число реплик для таких ключей, скажем одна.

Keeping live information:

Applications which need to keep a state cane use K/V stores easily.

Имеется аналог set+watch/wait.

Команда Set with expire и обычный get даёт тот же эффект как и "удаление ключа при потере соединения , только более надежно.

Такая работа может быть реализовано как в зоне raft, так и в зоне paxos, но сейчас реализовано только в зоне Paxos.

Обычно Column Based NoSQL Database Management Systems применятся так "Keeping unstructured, non-volatile information"

If a large collection of attributes and values needs to be kept for long periods of time, column-based data stores come in extremely handy.

У нас reliable resistant system , и она точно подходит под описание.

Разница в том, что мы атрибуты и структуру объекта можем хранить либо в виде одной строки, либо в виде нескольких записей. Это накладывает иные ограничения на обработку. Например заставляет использовать транзакции.

Однако в типовых Column Based NoSQL Database понятие транзакции полностью отсутствует.

Этим A_Storage лучше, у нас транзакции есть.

Scaling:

Column based data stores are highly scalable by nature. They can handle an awful amount of information.

A_Storage под эти требования подходит.

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

Доводами в нашу пользу могут быть :

  • скорость (из-за транспорта/архитектуры и более низкого уровня доступа),
  • lestener - свойства pub/sub системы, и
  • свойства системы координации, которыми "касандра" не обладает.

Области применения Document Based NoSQL Database Management Systems

Nested information:

Document-based data stores allow you to work with deeply nested, complex data structures.

Мы этого не предоставляем, были планы делать r-tree Object data Index но сейчас мы эти планы отодвинули.

JavaScript friendly:

One of the most critical functionalities of document-based data stores are the way they interface with applications: Using JS friendly JSON.

В планах предоставить Map-reduce с JS функциями в нашем KV, это будет покрывать 80% причин использования document store dms. Можно это сделать в стиле Couchbase с индексами результатов emit функций в DT - получится как бы ``Map Reduce View```.

Прочие аргументы в нашу пользу

Speed:

NoSQL databases are usually faster - and sometimes extremely speedier - when it comes to writes. Reads can also be very fast depending on the type of NoSQL database and data being queried.

Поддержка транзакций нужна для корректности данных, но имеется API для быстрой записи данных. Два вида интерфейсов: быстрые и коррректные.

Schema-free design по сравнению с RDBMS

Relational DBMSs require structure from the beginning. NoSQL solutions offer a large amount of flexibility.

Поверх KV реально создавать структуры высшего порядка, так , например, мы поступили в DT.

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

Automated (or easy) replications / scaling по сравнению с RDBMS

NoSQL databases are growing rapidly and they are being actively built today - vendors are trying to tackle common issues and one of them clearly is replication and scaling. Unlike RDBMSs, NoSQL solutions can easily scale and work with(in) clusters.

A_Storage здесь больше напоминает Nosql системы.

File Storage like ceph , moose, or S3

in development TODO

Comments

Comments powered by Disqus
Skip to main content