Мой опыт работы с Gridgain сказал мне, что определение задания очень важно для времени обработки.При создании заданий небольшого размера накладные расходы на связь велики, и все они могут быть замедлены (вы также можете столкнуться с другими проблемами с размером кэша сбора результатов или таймаутами).с другой стороны, когда вы выбираете слишком большие задания, медленные узлы могут блокировать процесс, в то время как другие узлы простаивают.Трудно найти оптимальный размер задания.
Воровство задания может помочь лучше распределить задания ПОСЛЕ того, как они были отправлены узлам сетки.ограничение числа обработанных заданий числом и предоставление рабочим узлам возможности украсть все, что превышает это число заданий в очереди, выполняется с помощью следующего кода.эта конфигурация также возможна для xml-файла.
public class ConfigGrid {
// config jobStealing
public static GridConfigurationAdapter JobStealing(
GridConfigurationAdapter cfg,
int waitJobsThreshold,
int activeJobsThreshold,
boolean stealingEnabled)
{
GridJobStealingCollisionSpi spi = new GridJobStealingCollisionSpi();
// Configure number of waiting jobs
// in the queue for job stealing.
spi.setWaitJobsThreshold(waitJobsThreshold);
// Configure stealing attempts number.
spi.setMaximumStealingAttempts(10);
// Configure number of active jobs that are allowed to execute
// in parallel. This number should usually be equal to the number
// of threads in the pool (default is 100).
spi.setActiveJobsThreshold(activeJobsThreshold);
// Enable stealing.
spi.setStealingEnabled(stealingEnabled);
// Override default Collision SPI.
cfg.setCollisionSpi(spi);
return cfg;
}
в вашей основной функции, затем вы вызываете ее следующим образом:
GridConfigurationAdapter cfg = new GridConfigurationAdapter();
// config job stealing
cfg = ConfigGrid.JobStealing(cfg, numberOfJobs, setActiveJobs, stealingEnabled);
GridFactory.start(cfg);
, чтобы узнать больше настроек, прочитайте документацию по GridJobStealingCollisionSpi.
(редактировать: конечно, вы должны использовать одинаковые настройки для каждого узла)