关注 spark技术分享,
撸spark源码 玩spark最佳实践

StateStoreProvider Contract

StateStoreProvider Contract

StateStoreProvider is the abstraction of state store providers that manage StateStores for a given StateStoreId.

Note
StateStoreProvider helper object uses spark.sql.streaming.stateStore.providerClass internal configuration property for the name of the class of the StateStoreProvider implementation.
Note
HDFSBackedStateStoreProvider is the only available implementation of the StateStoreProvider Contract in Spark Structured Streaming.
Table 1. StateStoreProvider Contract
Method Description

close

Closes the state store provider

Used exclusively when StateStore helper object is requested to unload a state store provider

doMaintenance

Optional maintenance task

Used exclusively when StateStore helper object is requested to perform maintenance of registered state store providers

getStore

Returns the StateStore for a given version

Used exclusively when StateStore helper object is requested to get the StateStore for a given ID and version

init

Initializes the state store provider

Used exclusively when StateStoreProvider helper object is requested to create and init the StateStoreProvider (when StateStore helper object is requested to retrieve a StateStore by ID and version)

stateStoreId

Returns the StateStoreId (that was used at initialization)

Used when:

supportedCustomMetrics

Used when:

Lifecycle of StateStoreProvider

The lifecycle of a StateStoreProvider starts when StateStore helper object (on a Spark executor) is requested to retrieve a StateStore by provider ID and version.

Note
HDFSBackedStateStoreProvider is the only available implementation of the StateStoreProvider Contract in Spark Structured Streaming.
Note
Since StateStore and StateStoreProvider helper objects are Scala objects that gives that there can only be one instance of StateStore and StateStoreProvider on a JVM. That in turn means that there will be only one instance of each per JVM which is exactly the JVM of a Spark executor.

StateStore helper object requests StateStoreProvider helper object to createAndInit that creates the StateStoreProvider implementation (given spark.sql.streaming.stateStore.providerClass internal configuration property) and requests it to initialize.

The initialized StateStoreProvider is cached in loadedProviders internal lookup table (for a StateStoreId) for later lookups.

StateStoreProvider helper object then requests the StateStoreProvider to getStore for the version.

An instance of StateStoreProvider is requested to do its own maintenance or close (when a corresponding StateStore is inactive) in MaintenanceTask daemon thread that runs periodically every spark.sql.streaming.stateStore.maintenanceInterval configuration property (default: 60s).

Creating and Initializing StateStoreProvider — createAndInit Factory Method

createAndInit creates a new StateStoreProvider (per spark.sql.streaming.stateStore.providerClass internal configuration property).

createAndInit requests the StateStoreProvider to initialize.

Note
createAndInit is used exclusively when StateStore helper object is requested to retrieve a StateStore by provider ID and version.
赞(0) 打赏
未经允许不得转载:spark技术分享 » StateStoreProvider Contract
分享到: 更多 (0)

关注公众号:spark技术分享

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏