trait CommitOwnerClient extends AnyRef
CommitOwnerClient is responsible for managing commits for a managed-commit delta table. 1. It provides API to commit a new version of the table. See CommitOwnerClient.commit API. 2. It makes sure that commits are backfilled if/when needed 3. It also tracks and returns unbackfilled commits. See CommitOwnerClient.getCommits API.
- Alphabetic
- By Inheritance
- CommitOwnerClient
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
backfillToVersion(logStore: LogStore, hadoopConf: Configuration, logPath: Path, managedCommitTableConf: Map[String, String], startVersion: Long, endVersion: Option[Long]): 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.
-
abstract
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.
-
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.
-
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.
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()
-
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.
-
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()