RavenDB - Планирование масштабируемости

Я недавно изучал RavenDB и хотел бы применить его.

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

Целесообразно или даже возможно ли создать несколько баз данных в одном экземпляре и реализовать их сегментирование. Тогда для масштабирования это просто вопрос распространения этих баз данных по машинам?

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

Обновление 1:

Я больше думал об этой теме. Я думаю, что моя проблема с подходом «разберись позже» в том, что мне кажется трудным равномерно распределить данные по серверам в этой ситуации. У меня не будет строкового ключа, который я могу ранжировать (A-E, F-M ..), это будет сделано с помощью чисел.

Я вижу два варианта. Либо разбейте его по границам, так что 1-50000 находится на осколке 1, 50001-100000 находится на осколке 2, но тогда с сайтом, который стареет, скажем, таким, как этот, ваши исходные осколки будут выполнять намного меньше работы.В качестве альтернативы стратегия, которая использует циклический перебор осколков и помещает идентификатор осколка в ключ, пострадает, если вам нужно переместить документ на новый осколок, это изменит ключ и сломает URL-адреса, которые использовали этот ключ.

Итак, моя новая идея, и я снова предлагаю ее для комментариев, состояла в том, чтобы создать с первого дня систему накопления. Это похоже на вставку идентификатора осколка в ключ, но вы начинаете с большого числа, скажем, 1000, которое вы распределяете равномерно между ними. Затем, когда придет время разделить нагрузку на сегмент, вы можете сказать, что переместить сегменты 501-1000 на новый сервер и написать логику сегментов, согласно которой 1-500 переходит в сегмент 1, а 501-1000 - в сегмент 2. Затем, когда третий сервер подключается к сети, вы выбираете другой диапазон ведер и настраиваете.

На мой взгляд, это дает вам возможность разделить на столько сегментов, сколько вы изначально создали сегментов, равномерно распределяя нагрузку как по количеству, так и по возрасту. Без смены ключей.

Мысли?

8
задан Chris Sainty 17 May 2011 в 05:16
поделиться