trait Retryable extends AnyRef
An interface that can be used to retry the processing on non-deterministic expressions on the GPU.
GPU memory is a limited resource. When it runs out the RAPIDS Accelerator for Apache Spark will use several different strategies to try and free more GPU memory to let the query complete. One of these strategies is to roll back the processioning for one task, pause the task thread, then retry the task when more memory is available. This works transparently for any stateless deterministic processing. But technically an expression/UDF can be non-deterministic and/or keep state in between calls. This interface provides a checkpoint method to save any needed state, and a restore method to reset the state in the case of a retry.
Please note that a retry is not isolated to a single expression, so a restore can be called even after the expression returned one or more batches of results. And each time checkpoint it called any previously saved state can be overwritten.
- Alphabetic
- By Inheritance
- Retryable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
checkpoint(): Unit
Save the state, so it can be restored in the case of a retry.
Save the state, so it can be restored in the case of a retry. (This is called inside a Spark task context on executors.)
-
abstract
def
restore(): Unit
Restore the state that was saved by calling to "checkpoint".
Restore the state that was saved by calling to "checkpoint". (This is called inside a Spark task context on executors.)
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
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
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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()