들어오는 데이터 배치를 처리해야하는 작업자가 N
입니다. 각 작업자는 "worker X
이 N
"임을 알 수 있도록 구성됩니다.미리보기가없는 버킷 간의 가중치 분포
데이터가 들어오는 각 배치에는 임의의 고유 한 ID
(임의적이며 균일하게 분포 됨)이 있으며 크기가 다릅니다. 처리 시간은 크기에 비례합니다. 크기는 크게 다를 수 있습니다.
새로운 데이터 배치를 사용할 수있게되면 즉시 모든 N 직원이 사용할 수있는 것으로 표시되지만 실제로 처리 할 사람은 입니다. 지금 당장은 각 작업자가 ID % N == X
을 계산합니다. 작업자가 배치를 자체 지정하고 다른 작업자는 건너 뜁니다. 이것은 올바르게 작동하고 평균적으로 각 작업자가 같은 수의 배치를 처리하도록합니다. 불행하게도 배치 크기를 고려하지 않기 때문에 일부 작업자는 매우 큰 작업을 스스로 할당 할 수 있기 때문에 다른 작업보다 나중에 처리를 완료 할 수 있습니다.
각 작업자가 일괄 처리 크기를 고려한 방식으로 일괄 처리를 자체 배정하여 평균적으로 각 작업자가 동일한 총 작업 크기를 할당하도록 알고리즘을 변경할 수 있습니까 (예 : 다른 배치에서)?
'N'이 (20 개 이상) 큽니까? 아니면 그것에 대해 아무런 가정을 할 수 없습니까? – dasblinkenlight
좋은 질문입니다. 제 경우에는 100000이 아니라 32 또는 64와 같습니다. –
직업 크기 분포를 아십니까? 그들은 균등하게 분포되어 있는가? – dasblinkenlight