NoSQL

индекс
27,33

Структуры данных, используемые в Redis перевод

От переводчика:
Хочу представить вашему вниманию перевод ответа одного из разработчиков Redis, на вопрос о том, какие структуры данных используются внутри Redis. Оригинальную дискуссию вы можете найти на stackoverflow.


Я попробую ответить на вопрос, но начну с того, что на первый взгляд может показаться странным: если вы не интересуетесь внутренностями Redis, вы не должны заботиться о том, как реализованы структуры данных изнутри. Причина этому проста — сложность каждой команды Redis вы можете найти в документации, и если у вас есть набор операций и их вычислительная сложность, то единственное, что вам нужно, это некоторое представление об использовании памяти (и потому, что мы делаем много оптимизаций, в зависимости от данных, лучший способ получить эти последние цифры это тесты в реальных условиях)

Но поскольку вы спросили, вот внутренние реализации каждой структуры данных Redis:

  • Строки реализованы с использованием библиотеки динамических строк C, так что мы не платим (говоря асимптотически) за выделение памяти в операциях добавления. Таким образом мы получаем сложность добавления O(N), вместо, например, квадратичной.
  • Списки реализованы как связные списки.
  • Множества и Хэши реализованы как хэш-таблицы.
  • Упорядоченные множества реализованы как списки с пропусками (особый тип сбалансированных деревьев)
+29
17 мая 2012, 21:56
103
cheetah 32,6

Расширения LINQ для Azure Table Storage, реализующие Or и Contains

Всем привет! Рад представить вам уже пятую статью из цикла «Внутреннее устройство и архитектура сервиса AtContent.com». В ней я расскажу о том как сделать работу с Azure Table Storage более функциональной и удобной.

LINQ

Платформа Windows Azure дает очень мощный набор инструментов для реализации своих идей. И среди них – Azure Table Storage – нереляционная база данных с неограниченным объемом. Большим плюсом этого хранилища является то, что можно делать к нему достаточно сложные запросы. Но помимо этого есть и некоторые неудобства. Так, например, с помощью LINQ нельзя выполнить запросы, в которых есть логика Or или Contains без дополнительных модификаций.
+7
23 апреля 2012, 15:22
14
VadNov 1,4

CouchDB: история одной аварии


Хочу поделиться историей, как наш проект слёг на полтора часа, и опытом выяснения причин.

В один прекрасный момент мы понимаем, что часть сайта грузится с 15-минутной задержкой, а другая часть попросту не работает, выдавая 504 ошибку.

Внимание! Поскольку люди любят умничать, и не любят читать — пишу тут. Цель поста — подсказать, как выйти из аварийной ситуации, всё остальное просто лирика, на которой почему-то все заостряют внимание.
+18
12 апреля 2012, 13:54
33
Makaveli 17,5

Часть I. InterSystems GlobalsDB .Net — разведка боем с заглядыванием под капот

image
Наконец-то вместо уговоров подождать еще немного, на вопрос “Есть ли InterSystems GlobalsDB/Caché Extreme под Microsoft .Net?” можно ответить утвердительно. В новой версии Caché 2012.2 (Field Test) и GlobalsDB v2012.296 появилась поддержка этой платформы.
Попытаюсь в любимом для многих разработчиков на одной шестой суши стиле, то есть без чтения install notes и прочего, исследовать, что, собственно говоря, представляет дистрибутив GlobalsDB под Windows.
+1
6 апреля 2012, 15:42
13
0leo 0,5

Redis in production

Хотелось бы рассказать о некоторых особенностях Redis при использовании на боевом сервере. Будут рассмотрены альтернативы при сохранении данных на диск, позволяющие достичь различной степени надёжности при сбоях. Так же будут приведены примеры конфигурации для резервного копирования и мониторинга. Используется Redis 2.2.11 на Amazon EC2 с установленной Ubuntu 10.10.

+31
28 марта 2012, 19:18
104
akhkharu 29,4

Новая версия GlobalsDB 2012

12 марта анонсирован выход очередной версии  бесплатной NoSQL InterSystems СУБД — GlobalsDB v2012.296.
GlobalsDB + .NET API
В новой версии появился интерфейс .NET API, внесены незначительные изменения и исправлен ряд ошибок.
Полная версия документа на английском языке доступна на сайте GlobalsDB.org.
Загрузить GlobalsDB.
Подробности под катом.
+6
23 марта 2012, 17:44
5

GlobalsDB Challenge. 4-й забег

29 марта в 18-00 по восточному времени (30 марта 3 часа ночи по Москве) начнется очередной турнир программистов GlobalsDB, бесплатной NoSQL СУБД от InterSystems.

Формат мероприятия: 1 неделя на выполнение задания, с выкладкой его на github ресурс.

Приз победителю — $3500 и специальный пресс-релиз InterSystems в его честь.

Вручение приза команде студентов - победителей GlobalsDB Challenge 3
+1
23 марта 2012, 17:02
2

Архитектурный изьян CouchDB

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

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

Вот о такой проблеме в Apache CouchDB мы и поговорим далее.
Картинка в тему:

+49
9 марта 2012, 15:30
44
gnomeby 27,2

Новый aggregation framework в MongoDB 2.1

В релизе 2.1 было заявлена реализация такой функциональности, как новый фреймворк агрегирования данных. Хотелось бы рассказать о первых впечатлениях от этой весьма интересной штуки. Данный функционал должен позволить в некоторых местах отказаться от Map/Reduce и написания кода на JavaScript в пользу достаточно простых конструкций, предназначенных для группировки полей почти как в SQL.

+65
9 марта 2012, 10:55
133
deadkrolik 11,4

HyperDex — новое опенсорсное NoSQL key-value хранилище, заточенное на очень быстрый поиск


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

Главная фича — новый принцип хранения объектов в многомерном эвклидовом пространстве (рис. слева), используя гиперпространственное хэширование (hyperspace hashing) (на который, кстати, авторы сейчас получают патент), которое позволяет выполнять большинство типичных задач от 2 до 13 раз быстрее, чем в MongoDB, Redis, Cassandra.

+68
23 февраля 2012, 07:51
222
demark 33,5