trait AbstractBatchBackfillingCommitOwnerClient extends CommitOwnerClient with Logging
An abstract CommitOwnerClient which triggers backfills every n commits.
- every commit version which satisfies commitVersion % batchSize == 0 will trigger a backfill.
- Alphabetic
- By Inheritance
- AbstractBatchBackfillingCommitOwnerClient
- Logging
- CommitOwnerClient
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
val
batchSize: Long
Size of batch that should be backfilled.
Size of batch that should be backfilled. So every commit version which satisfies
commitVersion % batchSize == 0will trigger a backfill. -
abstract
def
getCommits(logPath: Path, managedCommitTableConf: Map[String, String], startVersion: Long, endVersion: Option[Long] = None): GetCommitsResponse
API to get the un-backfilled commits for the table represented by the given
logPath.API to get the un-backfilled commits for the table represented by the given
logPath. Commits older thanstartVersion, or newer thanendVersion(if given), are ignored. The returned commits are contiguous and in ascending version order. Note that the first version returned by this API may not be equal to thestartVersion. This happens when few versions starting fromstartVersionare already backfilled and so commit-owner may have stopped tracking them. The returned latestTableVersion is the maximum commit version ratified by the Commit-Owner. Note that returning latestTableVersion as -1 is acceptable only if the commit-owner never ratified any version i.e. it never accepted any un-backfilled commit.- returns
GetCommitsResponse which has a list of Commits and the latestTableVersion which is tracked by CommitOwnerClient.
- Definition Classes
- CommitOwnerClient
-
abstract
def
registerBackfill(logPath: Path, backfilledVersion: Long): Unit
Callback to tell the CommitOwner that all commits <=
backfilledVersionare backfilled.Callback to tell the CommitOwner that all commits <=
backfilledVersionare backfilled.- Attributes
- protected[delta]
-
abstract
def
semanticEquals(other: CommitOwnerClient): Boolean
Determines whether this CommitOwnerClient is semantically equal to another CommitOwnerClient.
Determines whether this CommitOwnerClient is semantically equal to another CommitOwnerClient.
Semantic equality is determined by each CommitOwnerClient implementation based on whether the two instances can be used interchangeably when invoking any of the CommitOwnerClient APIs, such as
commit,getCommits, etc. For e.g., both the instances might be pointing to the same underlying endpoint.- Definition Classes
- CommitOwnerClient
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
backfill(logStore: LogStore, hadoopConf: Configuration, logPath: Path, version: Long, fileStatus: FileStatus): Unit
Backfills a given
fileStatustoversion.jsonBackfills a given
fileStatustoversion.json- Attributes
- protected
-
def
backfillToVersion(logStore: LogStore, hadoopConf: Configuration, logPath: Path, managedCommitTableConf: Map[String, String], startVersion: Long = 0, endVersionOpt: Option[Long] = None): Unit
API to ask the Commit-Owner to backfill all commits >= 'startVersion' and <=
endVersion.API to ask the Commit-Owner to backfill all commits >= 'startVersion' and <=
endVersion.If this API returns successfully, that means the backfill must have been completed, although the Commit-Owner may not be aware of it yet.
- Definition Classes
- AbstractBatchBackfillingCommitOwnerClient → CommitOwnerClient
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
commit(logStore: LogStore, hadoopConf: Configuration, logPath: Path, managedCommitTableConf: Map[String, String], commitVersion: Long, actions: Iterator[String], updatedActions: UpdatedActions): CommitResponse
API to commit the given set of
actionsto the table represented by givenlogPathat the givencommitVersion.API to commit the given set of
actionsto the table represented by givenlogPathat the givencommitVersion.- returns
CommitResponse which contains the file status of the commit file. If the commit is already backfilled, then the fileStatus could be omitted from response and the client could get the info by themselves.
- Definition Classes
- AbstractBatchBackfillingCommitOwnerClient → CommitOwnerClient
-
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] )
-
def
generateUUID(): String
- Attributes
- protected
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getTablePath(logPath: Path): Path
- Attributes
- protected
-
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
-
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()
-
def
registerTable(logPath: Path, currentVersion: Long, currentMetadata: Metadata, currentProtocol: Protocol): Map[String, String]
API to register the table represented by the given
logPathwith the givencurrentTableVersion.API to register the table represented by the given
logPathwith the givencurrentTableVersion. This API is called when the table is being converted from filesystem table to managed-commit table. - ThecurrentTableVersionis the version of the table just before conversion. - ThecurrentTableVersion+ 1 represents the commit that will do the conversion. This must be backfilled atomically. - ThecurrentTableVersion+ 2 represents the first commit after conversion. This will go via the CommitOwnerClient and it could choose whether it wants to write unbackfilled commits and backfill them later. When a new managed-commit table is being created, thecurrentTableVersionwill be -1 and the upgrade commit needs to be a file-system commit which will write the backfilled file directly.- returns
A map of key-value pairs which is issued by the commit-owner to identify the table. This should be stored in the table's metadata. This information needs to be passed in other table specific APIs like commit / getCommits / backfillToVersion to identify the table.
- Definition Classes
- CommitOwnerClient
-
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()
-
def
writeCommitFile(logStore: LogStore, hadoopConf: Configuration, logPath: Path, commitVersion: Long, actions: Iterator[String]): FileStatus
- Attributes
- protected