Хранение новостей в распределенной БД и СУБД - PullRequest
0 голосов
/ 16 июня 2010

Привет всем: Если я храню новостные статьи в БД с различными категориями, такими как «Технология», «Финансы» и «Здоровье», будет ли распределенная база данных работать хорошо в этой системе против СУБД? К каждой новостной ленте будут прикреплены новостные статьи, а также несколько других статей. Мне интересно, если бы запросы были быстрее, хотя.

Допустим, у меня никогда не бывает более миллиона строк, и я хочу получить последние (в течение 5 часов) технические статьи. Я предполагаю, что это будет сокращение карты «Дай мне все технические статьи» (возможно, 10000), а затем отсеять только те, которые имеют самую последнюю временную метку.

Думаю ли я о правильном решении проблемы, и будет ли DDB даже лучшим решением? Через несколько лет их может быть 5 миллионов, но даже тогда ....

1 Ответ

3 голосов
/ 16 июня 2010

Использование распределенной базы данных или хранилища значений ключей больше зависит от ваших эксплуатационных требований, чем от проблемы вашего домена.

Когда люди спрашивают, как выполнять упорядоченные по времени запросы в Riak, мы обычно предлагаем несколько стратегий (хотя ни один из них не является серебряной пулей, так как у Riak отсутствуют запросы упорядоченного диапазона):

1) Если вы часто обращаетесь к фрагменту времени определенного размера, разбейте свои данные на сегменты, отражающие этот период.Например, все данные за указанный день, час или минуту будут либо сохраняться, либо связываться с ними из корзины, содержащей соответствующую метку времени.Если бы я хотел получить все технические новости с сегодняшнего дня, название корзины могло бы быть «tech-20100616».По мере поступления ваших данных добавьте соответствующие ссылки из временного блока в фактический элемент.

2) Если данные более ориентированы на последовательность и не связаны с конкретным моментом времени, используйте ссылки для созданияцепочка данных, связывающая назад во времени, вперед или оба.(Это хорошо работает и для версионных данных, таких как вики-страницы.) Вам также может понадобиться сохранить объект, который просто указывает на начало списка.

Если оставить в стороне эти стратегии, Riak, вероятно, не является 100% решением.для самой последней информации, но может быть лучше для долгосрочного хранения.Вы можете объединить это с чем-то вроде Redis, memcached или даже MongoDB (который имеет отличную производительность, если ваши данные слегка изменчивы и могут поместиться в памяти), чтобы содержать скользящий индекс последних данных.

...