Например, у меня есть большой набор бюллетеней, которые организованы в виде дерева (дерева категорий). Все категории включительно. Поэтому, если я просматриваю предметы в категории A, я также вижу все элементы в подкатегориях этой категории A. И если я смотрю у корня, я вижу все бюллетени.Распределение древовидных структур
Я хочу достичь горизонтальной масштабируемости здесь, из-за большого размера набора.
Единственный способ, который я знаю, так называемый разброс. Scatter-gather означает, что я отправляю запрос на всех узлах (или подмножестве всех узлов, если знаю, где данные лежат точно), и после ответа узлов данных я собираю результат. Проблема с этим методом заключается в том, что я не могу выполнить подкачку на узлах данных. И это приводит к большому трафику в сети, поскольку сортировка и подкачка должны выполняться на узле координатора (узел, который инициирует сборку рассеяния).
Есть ли еще какие-либо другие способы распределения древовидных структур над множеством серверов для достижения горизонтальной масштабируемости?
Да, я видел это. DHT очень перспективен в случае сбоя узла. Но это похоже на сборку рассеяния по пропускной способности сети. Кстати, есть ли реализация DHT на вершине терракоты? ;) –
Я не знаю DHT на Terracotta, но вы можете найти интересный проект Terrastore с открытым исходным кодом: http://code.google.com/p/terrastore/ –