Практическое правило для определения размера JVM для Coherence заключается в том, что данные составляют 1/3 кучи, предполагая 1 резервное копирование: 1/3 для данных кэша, 1/3 для резервного копирования и 1/3 для индекса и служебных данных.
Самая большая сложность в определении размера состоит в том, что нет хороших способов оценить размеры индекса. Вы должны попробовать с реальными данными и измерить.
Основное правило для JVM JDK 1.6 - запуск с кучами 4 ГБ, поэтому вам потребуется 75 узлов кеш-сервера. Некоторые люди добились успеха с гораздо большими кучами (16 ГБ), поэтому стоит экспериментировать. При больших кучах (например, 16 ГБ) вам не понадобится 1/3 для служебных данных и вы можете хранить более 1/3 для данных. При кучах более 16 ГБ настройка сборщика мусора становится критической.
Для максимальной производительности у вас должно быть 1 ядро на узел.
Количество серверных машин зависит от практических ограничений управляемости, емкости (ядер и памяти) и отказов. Например, даже если у вас есть сервер, который может обрабатывать 32 узла, что произойдет с вашим кластером при сбое компьютера? Кластер будет безопасным для машины (резервные копии не находятся на одной машине), но восстановление будет очень медленным, учитывая огромное количество данных, которые будут перемещены в новые резервные копии. С другой стороны, с 75 машинами сложно управлять.
Я видел, что у Coherence задержка составляла 250 микросекунд (не миллис) для объекта размером 1 КБ, включая скачки в сети и резервное копирование. Таким образом, количество вставок и обновлений, которые вы ищете, должно быть достижимым. Тестируйте со вставкой / обновлением нескольких потоков и убедитесь, что ваш тестовый клиент не является узким местом.