HeartSaVioR commented on code in PR #47188:
URL: https://github.com/apache/spark/pull/47188#discussion_r1669604069
##########
sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/state/StateStore.scala:
##########
@@ -469,6 +469,15 @@ trait SupportsFineGrainedReplay {
def replayReadStateFromSnapshot(snapshotVersion: Long, endVersion: Long):
ReadStateStore = {
new WrappedReadStateStore(replayStateFromSnapshot(snapshotVersion,
endVersion))
}
+
+ /**
+ *
+ * @param startVersion
+ * @param endVersion
+ * @return
+ */
+ def getStateStoreChangeDataReader(startVersion: Long, endVersion: Long):
Review Comment:
But StateStoreChangeDataReader is only helpful when they have very similar
implementation with the built-in one, right? If they have totally different
approach of maintaining changelog, they are going to reimplement everything and
it is not clear what needs to be implemented.
An interface is to declare the spec. Whenever we design pluggable
functionality, please be sure to define the spec and describe the spec as
interface. Don't make others struggle with understanding spec from actual
implementation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]