Я работаю над хобби-проектом, который требует довольно интенсивных вычисленийПроблема смущающе параллельна.Этот расчет должен произойти на большом количестве узлов (скажем, 1000-10000).Каждый узел может выполнять свою работу практически полностью независимо от других.Однако вся система должна будет отвечать на запросы извне системы.Приблизительно 100000 таких запросов в секунду нужно будет ответить.Чтобы ответить на запросы, системе необходимо некоторое состояние, которое иногда разделяется между двумя узлами.Для своих вычислений узлам требуется не более 128 МБ ОЗУ.
Очевидно, что я, вероятно, не собираюсь позволить себе фактически построить эту систему в масштабе, описанном выше, но я все еще заинтересован в ее инженерных задачах.и подумал, что я бы настроил небольшое количество узлов в качестве подтверждения концепции.
Я думал об использовании чего-то вроде Cassandra и CouchDB, чтобы иметь масштабируемое постоянное состояние на всех узлах.Если бы я запускал сервер распределенной базы данных на каждом узле, он был бы очень легко загружен, но с точки зрения ops было бы очень хорошо, чтобы все узлы были идентичными.
Теперь на мой вопрос:
Может ли кто-нибудь предложить реализацию распределенной базы данных, которая была бы подходящей для кластера с большим количеством узлов, каждый с очень небольшим объемом ОЗУ?
Кажется, Кассандра делает то, что я хочу, но http://wiki.apache.org/cassandra/CassandraHardware говорит о том, что рекомендуется рекомендовать по крайней мере 4 ГБ ОЗУ для каждого узла.
Я не нашел фигуры для требований к памяти CouchDB, но, учитывая, что она реализована в Erlang, я думаю, что это не такплохо?
В любом случае, рекомендации, советы, предложения, мнения приветствуются!