Скажем, у нас есть большой граф баз данных, связанных друг с другом, фактически одна гигантская распределенная база данных. Любой узел на графике может запросить всю базу данных путем рекурсивного опроса соседей, которые получают результаты, полученные от соседей, и передают объединенный результат обратно по пути запроса.
Кроме того, предположим, что есть возможность остановить рекурсию, если собственная база данных узла содержит результат, который «достаточно хорош», так что нет необходимости запрашивать всю сеть, если поблизости уже есть достойный результат. Это делает то, что я собираюсь сказать, актуальным.
Не имеет ли смысла передавать возвращаемые данные на один шаг ближе к узлу, который инициировал запрос каждый раз, когда выполняется запрос? То есть запрашиваемый узел запрашивает своих соседей и получает X, запрашивает себя и получает Y, передает X + Y обратно узлу, который его запросил, сохраняет X в своей базе данных и удаляет Y из своей базы данных. Не приведет ли это в конечном итоге к тому, что распределенная база данных будет иметь примерно оптимальное распределение данных между ее узлами по отношению к количеству узлов, к которым будет обращаться в среднем запрос?
Есть ли название для этой техники?