add queueAllOnInit

instead of using a dynamic scheduler, the bolck builder can queue
up everything for sending at the beginning.

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2024-03-01 15:32:13 +01:00
parent 71394768cc
commit fab1dff617
No known key found for this signature in database
GPG Key ID: 0FE274EE8C95166E
1 changed files with 12 additions and 0 deletions

View File

@ -111,6 +111,7 @@ class Validator:
self.dumbRandomScheduler = False # dumb random scheduler
self.segmentShuffleScheduler = True # send each segment that's worth sending once in shuffled order, then repeat
self.segmentShuffleSchedulerPersist = True # Persist scheduler state between timesteps
self.queueAllOnInit = False # queue up everything in the block producer, without shuffling, at the very beginning
self.forwardOnReceive = True # forward segments as soon as received
self.forwardOnRepair = False # forward all segments when full line available (repaired segments are always forwarded)
@ -178,6 +179,17 @@ class Validator:
measuredFailureRate = nbFailures * 100 / (self.shape.blockSizeR * self.shape.blockSizeC)
self.logger.debug("Number of failures: %d (%0.02f %%)", nbFailures, measuredFailureRate, extra=self.format)
if self.queueAllOnInit:
for r in range(self.shape.blockSizeC):
for c in range(self.shape.blockSizeR):
if self.block.getSegment(r,c):
if r in self.rowNeighbors:
for n in self.rowNeighbors[r].values():
n.sendQueue.append(c)
if c in self.columnNeighbors:
for n in self.columnNeighbors[c].values():
n.sendQueue.append(r)
def getColumn(self, index):
"""It returns a given column."""
return self.block.getColumn(index)