73
минимизировать количество обращений к диску. Кэширование – это стратегия,
которая реализуется на различных уровнях программного стека для увеличения
производительности. Кэширование используется в операционных системах, базах
данных, различных компонентах и приложениях. Существуют надежные open-
source распределенные системы кэширования наподобие EHCache
(http://ehcache.org/), которая широко распространена при разработке Java-
приложений. EHCache также может рассматриваться как решение NoSQL. Другая
известная система кэширования – Memcached (http://memcached.org/), которая
представляет собой open-source высокопроизводительную систему кэширования
объектов. Memcached была создана Брадом Фитцпатриком для LiveJournal в 2003
году. Memcached позволяет эффективно управлять памятью ЭВМ, создавая
виртуальный пул и выполняя при необходимости распределение общего адресного
пространства между узлами. Это предотвращает появление ситуаций, когда один
узел имеет избыток памяти, а другой испытывает недостаток в ней. Так как
NoSQL-технологии продолжают развиваться, то появляются различные хранилища
типа ключ – значение. Некоторые из них строятся на основе Memcached API,
другие используют Berkeley DB как низлежащее хранилище, третьи – реализуют
альтернативные подходы на новых принципах
Многие из систем, основанных на парах ключ – значение, обладают
собственным API, позволяющим более просто развернуть распределенную
систему. Несколько из них, такие как Redis (http://redis.io/), обеспечивают более
производительные API и более высокий уровень абстракции. Redis – это сервер
структур данных, так как он предоставляет различные структуры данных в виде
строк (последовательности символов), списков, множеств, а также карт
отображения. Redis также предоставляет программисту богатый набор операций
над этими структурами данных. Некоторые хранилища на основе пар ключ –
значение: – Membase; – Kyoto Cabinet; – Redis. Все три вышеуказанные системы
являются эффективными хранилищами типа ключ – значение, обеспечивающие
хранение данных для систем реального времени, часто используемых данных или
просто для долговременного хранения данных. Системы на основе пар ключ –
значение рассматриваемые до сих пор обеспечивают надежную модель
согласованности данных, которые они хранит. Однако, некоторые другие системы