abstract class RapidsBufferStore extends AutoCloseable with Logging
Base class for all buffer store types.
- Alphabetic
- By Inheritance
- RapidsBufferStore
- Logging
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
RapidsBufferStore(tier: StorageTier)
- tier
storage tier of this store
Type Members
-
abstract
class
RapidsBufferBase extends RapidsBuffer
Base class for all buffers in this store.
Abstract Value Members
-
abstract
def
createBuffer(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Option[RapidsBufferBase]
Create a new buffer from an existing buffer in another store.
Create a new buffer from an existing buffer in another store. If the data transfer will be performed asynchronously, this method is responsible for adding a reference to the existing buffer and later closing it when the transfer completes.
- buffer
data from another store
- catalog
RapidsBufferCatalog we may need to modify during this create
- stream
CUDA stream to use or null
- returns
the new buffer that was created.
- Attributes
- protected
- Note
DO NOT close the buffer unless adding a reference!
,createBufferimpls should synchronize againststreambefore returning, if needed.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addBuffer(buffer: RapidsBufferBase, needsSync: Boolean): Unit
Adds a buffer to the spill framework, stream synchronizing with the producer stream to ensure that the buffer is fully materialized, and can be safely copied as part of the spill.
Adds a buffer to the spill framework, stream synchronizing with the producer stream to ensure that the buffer is fully materialized, and can be safely copied as part of the spill.
- needsSync
true if we should stream synchronize before adding the buffer
- Attributes
- protected
-
def
addBuffer(buffer: RapidsBufferBase): Unit
Update bookkeeping for a new buffer
Update bookkeeping for a new buffer
- Attributes
- protected
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
- Definition Classes
- RapidsBufferStore → AutoCloseable
-
def
copyBuffer(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Option[RapidsBufferBase]
Adds an existing buffer from another store to this store.
Adds an existing buffer from another store to this store. The buffer must already have an active reference by the caller and needs to be eventually closed by the caller (i.e.: this method will not take ownership of the incoming buffer object). This does not need to update the catalog, the caller is responsible for that.
- buffer
data from another store
- catalog
RapidsBufferCatalog we may need to modify during this copy
- stream
CUDA stream to use for copy or null
- returns
the new buffer that was created
-
def
currentSize: Long
Return the current byte total of buffers in this store.
- def currentSpillableSize: Long
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getMaxSize: Option[Long]
Stores that need to stay within a specific byte limit of buffers stored override this function.
Stores that need to stay within a specific byte limit of buffers stored override this function. Only the
HostMemoryBufferStorerequires such a limit.- returns
maximum amount of bytes that can be stored in the store, None for no limit
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logName: String
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- val name: String
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nextSpillable(): RapidsBuffer
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
setSpillStore(store: RapidsBufferStore): Unit
Specify another store that can be used when this store needs to spill.
Specify another store that can be used when this store needs to spill.
- Note
Only one spill store can be registered. This will throw if a spill store has already been registered.
-
def
setSpillable(buffer: RapidsBufferBase, isSpillable: Boolean): Unit
- Attributes
- protected
-
var
spillStore: RapidsBufferStore
A store that can be used for spilling.
-
def
spillableOnAdd: Boolean
A store that manages spillability of buffers should override this method to false, otherwise
BufferTrackertreats buffers as always spillable.A store that manages spillability of buffers should override this method to false, otherwise
BufferTrackertreats buffers as always spillable.- Attributes
- protected
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def synchronousSpill(targetTotalSize: Long, catalog: RapidsBufferCatalog, stream: Stream = Cuda.DEFAULT_STREAM): Long
- val tier: StorageTier
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
trySpillToMaximumSize(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Boolean
Tries to make room for
bufferin the host store by spilling.Tries to make room for
bufferin the host store by spilling.- buffer
buffer that will be copied to the host store if it fits
- stream
CUDA stream to synchronize for memory operations
- returns
true if the buffer fits after a potential spill
- Attributes
- protected
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()