Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enables spillable/unspillable state for RapidsBuffer and allow buffer…
… sharing (#7572) * Enables RapidsBuffer sharing in the spill framework Signed-off-by: Alessandro Bellina <[email protected]> * Scalastyle * Update sql-plugin/src/main/scala/com/nvidia/spark/rapids/RapidsBufferStore.scala * If we keep holding onto the batch we wont spill to disk * Remove synchronize from DeviceMemoryEventHandler * Move definition of setSpillable to let data members be on top * Lock the underlying buffer every time we add, to prevent multiple RapidsDeviceMemoryBuffer instances being created pointing at the same underlying * Add spillableOnAdd so that stores can expose whether they intend buffers to be spillable as soon as they are added, or handled via ref counting * Retry allocation instead of redundant spilling if multiple threads tried to spill at the same time * Minor whitespace change * Rework locking always taking catalog lock first * Fix typo * Fix log messages * Code review comments * fix imports and build issue * Fix RapidsHostMemoryStoreSuite and unspill test * Take care of some of the feedback * Removes waitForPending from the RapidsBufferStore, address a few more comments, fix bug * getExistingRapidsBufferAndAcquire private and static * Require that callbacks are null when adding buffers to the device store * Dont forget to set the spill store * Add third argument matcher when mocking synchronousSpill * In RapidsGdsStoreSuite use the provided catalog --------- Signed-off-by: Alessandro Bellina <[email protected]>
- Loading branch information