Наиболее подходящее хранилище данных для миллиардов индексов - PullRequest
0 голосов
/ 03 февраля 2012

Итак, мы собираемся хранить два вида индексов.

  1. Первый вид будет иметь порядок в миллиардах, каждый из которых имеет значения от 1 до 1000, каждое из которых равно одному или двум 64-битнымцелые числа.
  2. Второй вид будет иметь порядок миллионов, каждое из которых имеет около 200 значений, каждое значение размером от 1 КБ до 1 МБ.

И наш шаблон использования будет выглядеть примерно так:this:

  • Оба вида индекса будут иметь значения, добавленные к вершине до тысяч раз в секунду.
  • Индексы будут считываться редко, но когда они будут прочитаны, они будутбыть полным индексом, который читается
  • Индексы должны быть удалены, либо при записи значений в индекс, либо при выполнении какого-либо задания пакетного типа

Теперь мы рассмотрели довольнонесколько баз данных, наши любимые на данный момент это Cassandra и PostreSQL.Однако наше приложение находится в Эрланге, который не имеет готовых для производства привязок для Кассандры.И главное требование заключается в том, что для его обслуживания не требуется слишком много рабочей силы.У меня такое ощущение, что Кассандра будет вызывать неожиданные проблемы с масштабированием, тогда как PostgreSQL будет просто осколком боли, но по крайней мере для нас это известное количество.Мы уже знакомы с PostgreSQL, но не очень хорошо знакомы с Cassandra.

Итак.Какие-либо предложения или рекомендации относительно того, какое хранилище данных будет наиболее подходящим для нашего варианта использования?Я открыт для любых предложений!

Спасибо,

-Alec

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Вы не дали достаточно информации, чтобы поддержать большую часть ответа относительно вашего дизайна индекса. Тем не менее, Кассандра довольно легко масштабируется за счет роста кластера.

Возможно, вы захотите прочитать эту статью: http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

Более важной проблемой для Cassandra является то, поддерживает ли она тот тип запросов, который вам нужен - масштабируемость не будет проблемой. Судя по числам, которые вы даете, мы говорим о терабайтах или десятках терабайт, что является очень безопасной территорией для Кассандры.

2 голосов
/ 03 февраля 2012

Миллиарды - это не большое число по сегодняшним стандартам, почему бы не написать эталон вместо догадок? Это даст вам лучший инструмент для принятия решений, и это действительно легко сделать. Просто установите целевую ОС и каждый движок базы данных, затем запустите запросы, скажем, на Perl (потому что мне это нравится) Это займет у вас не более одного дня, я делал что-то подобное раньше. Хороший способ оценки производительности - написание сценария, который случайным образом или с чем-то вроде кривой Гаусса выполняет запросы, «имитируя» реальное использование. Затем нанесите данные или сделайте это как начальник и просто прочитайте логи.

...