1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-08-05 04:01:12 +03:00

Updated README.md

This commit is contained in:
Teemu Ollakka
2018-04-25 10:40:31 +03:00
parent caa78cfd28
commit 59c87e2dfb

View File

@@ -44,13 +44,16 @@ calls the registered callbacks.
## Server Context ## Server Context
Server attributes: Server attributes:
* Identifiers (name, uuid) * Identifiers (name, uuid)
Server capabilities: Server capabilities:
* Rollback mode (async or sync) * Rollback mode (async or sync)
* *
Abstract Methods: Abstract Methods:
* on_connect() * on_connect()
* on_view() * on_view()
* on_sync() * on_sync()
@@ -77,15 +80,22 @@ program which drives the transaction.
## Client Context ## Client Context
Attributes Attributes
* Identifier * Identifier
* Mode (local, applier) * Mode (local, applier)
* State (idle, exec, quit) * State (idle, exec, quit)
Abstract methods: Abstract methods:
* before_command() - executed before a command from client is processed * before_command() - executed before a command from client is processed
* after_command() - executed after a command from client has been processed * after_command() - executed after a command from client has been processed
* before_statement() - executed before a statement from client is processed * before_statement() - executed before a statement from client is processed
* after_statement - executed after a statement from a client has been processed * after_statement - executed after a statement from a client has been processed
* apply()
* commit()
* rollback()
* replay()
The following subsections briefly describe what would be the The following subsections briefly describe what would be the
purpose of the abstract methods in mysql-wsrep implementattion. purpose of the abstract methods in mysql-wsrep implementattion.
@@ -105,6 +115,7 @@ Bookkeeping.
Checks which are run before the actual parsed statement is executed. Checks which are run before the actual parsed statement is executed.
These may include: These may include:
* Check if dirty reads are allowed * Check if dirty reads are allowed
* ... * ...
@@ -115,6 +126,7 @@ Checks if the statement can and should be retried.
## Transaction Context ## Transaction Context
Attributes Attributes
* Client context - pointer or reference to client context * Client context - pointer or reference to client context
* Identifier - an identifier which uniquely identifies the transaction * Identifier - an identifier which uniquely identifies the transaction
on the server the client driven execution happens on the server the client driven execution happens
@@ -124,15 +136,22 @@ Attributes
See https://github.com/codership/Engineering/wiki/Transaction_coordinator_design See https://github.com/codership/Engineering/wiki/Transaction_coordinator_design
Attributes: Attributes:
* Identifier (interger, uuid or similar) * Identifier (interger, uuid or similar)
* State (executing, certifying, must_abort, etc) * State (executing, certifying, must_abort, etc)
Methods: Methods:
* append_key() * append_key()
* append_data() * append_data()
* after_row() * after_row()
* before_prepare() * before_prepare()
* after_prepare() * after_prepare()
* before_commit()
* ordered_commit()
* after_commit()
* before_rollback()
* after_rollback()
### Append Key ### Append Key
@@ -163,20 +182,7 @@ on remote servers.
## Remote Transaction Applying ## Remote Transaction Applying
Methods: Methods:
* apply() * apply()
## Commit Order Coordinator
Commit order coordinator is a common for both local and remote
transaction. Currently this is implemented in transaction_context
class, check out later if it make sense to refactor commit ordering
into separate class.
Methods:
* before_commit()
* ordered_commit()
* after_commit()