La méthode ComputeGlobalSlaveNecessaryMemory, dont le deuxième paramètre a changé radicalement de valeur, est utilisée plusieurs fois dans le code, avec une variation de paramètre (MemSegmentByteSize, BufferedFile::nDefaultBufferSize).
Et réciproquement, elle utilise pour son implémentation d'autres méthodes internes (ComputeRecodingObjectsNecessaryMemory, ComputeSliceSetTotalReadBufferNecessaryMemory, ComputeSliceSetTotalReadBufferNecessaryMemory).
Il faudrait vérifier si le changement proposé ne doit pas être propagé à d'autres méthodes.
The function it is used in two places:
Twice in ComputeResourceRequirements to estimate the min and the max global memory
Once in MasterInitializeDataTableBinarySliceSet to compute the number of slices after the resources have been assigned.
In MasterInitializeDataTableBinarySliceSet it was called with MemSegmentByteSize but this increases the necessary memory with respect to BufferedFile::nDefaultBufferSize (see the comment in the code) . So it must be called with the BufferedFile:nDefaultBufferSize so we reach the lower bound (SetMin) of the requested memory.
The function it is used in two places:
ComputeResourceRequirements
to estimate the min and the max global memoryMasterInitializeDataTableBinarySliceSet
to compute the number of slices after the resources have been assigned.In
MasterInitializeDataTableBinarySliceSet
it was called withMemSegmentByteSize
but this increases the necessary memory with respect toBufferedFile::nDefaultBufferSize
(see the comment in the code) . So it must be called with theBufferedFile:nDefaultBufferSize
so we reach the lower bound (SetMin
) of the requested memory.