Teemu Ollakka
0efec1b8bd
Added debug_crash() method to high priority service interface.
2018-07-16 12:45:53 +03:00
Teemu Ollakka
21ae2c849e
Pass pointer to high priority service as a parameter for log_view()
...
The pointer will pass applier context to log_view(), where it
can be used for stable storage access.
2018-07-15 19:00:10 +03:00
Teemu Ollakka
4cfb9b6413
Introduced adopt_transaction() for storage_service interface
...
A SR transaction must be adopted by a storage service instance
running in background rollbacker thread while it is aborting a
SR transaction.
2018-07-13 15:36:27 +03:00
Teemu Ollakka
22d7a31d81
Fixes to SR rollback:
...
* Enable codepath to BF abort high priority SR applier
* Pass ws_handle, ws_meta to high priority service rollback
call to allow total ordering of rollback process
2018-07-12 18:00:52 +03:00
Teemu Ollakka
ddc6c6495b
Made client_id, transaction_id constructors explicit.
2018-07-11 15:00:31 +03:00
Teemu Ollakka
80ca03daaf
Implemented SR transaction rollback.
2018-07-10 14:01:41 +03:00
Teemu Ollakka
6f68c70d37
Interface changes required to store and remove fragments from high
...
priority context.
2018-07-09 18:12:48 +03:00
Teemu Ollakka
6aa6b6f50a
Provider write set handle and meta data for high priority commit
...
The write set handle and meta data are needed for SR transactions
where the commit context is not known when the transaction starts.
The passed handle and meta data can be set through client_state
prepare_for_ordering() call before performing commit.
2018-07-09 13:02:13 +03:00
Teemu Ollakka
8a1e76bcec
Execution context switching for high priority service.
2018-07-09 11:35:20 +03:00
Teemu Ollakka
7c424d8337
Fixes to local streaming replication processing.
2018-07-08 15:27:49 +03:00
Teemu Ollakka
2913aecebd
Pass transaction id instead of client id to storage service append_fragment()
2018-07-07 21:34:58 +03:00
Teemu Ollakka
2ac13100f7
Refactored storage service out of client service interface.
2018-07-07 18:06:37 +03:00
Teemu Ollakka
a8be09161c
Replaced replicating mode with local.
...
The intended purpose for local mode was local storage access without
entering replication hooks. However, the same can be achieved with
high priority mode. Removed replicating mode and use local instead to
denote locally processing clients.
2018-07-07 12:01:14 +03:00
Teemu Ollakka
af18a10a49
Removed is_autocommi() from client_service interface as it is not
...
quite useful as there might not be enough information for it
after the statement has been processed. Better to handle retrying
on DBMS side. Also removed after_statement_result enumeration and
return plain int from after_statement().
2018-07-06 19:48:48 +03:00
Teemu Ollakka
e876418ed3
* Renamed client service rollback() to bf_rollback() to better
...
describe its purpose.
* Raise deadlock error for BF aborted transaction in after_statement()
call if the error is not set yet.
2018-07-06 15:42:03 +03:00
Teemu Ollakka
d80a69fe90
Defined log_state_change() interface in server_service.
...
The interface method can be used to notify the DBMS implementation
about state changes in well defined order. The call will be done
under server_state mutex protection.
2018-07-05 12:45:22 +03:00
Teemu Ollakka
4e8dfca3f1
Initial RSU implementation.
2018-07-03 12:37:22 +03:00
Teemu Ollakka
c552d944ed
Deprecated sst_transferred(), always use sst_received()
2018-07-03 10:20:36 +03:00
Teemu Ollakka
e6d78c380d
Pass ws_meta to high priority service apply_toi
2018-07-03 08:58:25 +03:00
Teemu Ollakka
3632e7823c
Pass high_priority_service instead of void ptr for provider methods.
2018-07-03 07:48:35 +03:00
Teemu Ollakka
004244d203
Fixed dbsim SST issues.
2018-07-02 19:17:38 +03:00
Teemu Ollakka
635eaf4c29
Refactored high priority service out of client service.
2018-07-02 18:22:24 +03:00
Teemu Ollakka
658a84a7d4
Fixed BF abort in sync rollback mode.
...
* Pass condition variable for client_state
* Notify all cond waiters when changing the transcation status to
aborted
* Wait for aborting transaction state aborted in before_command
2018-07-02 10:09:48 +03:00
Teemu Ollakka
3d2af88428
Propagate incoming address to provider.
2018-06-29 17:46:11 +03:00
Teemu Ollakka
c35f59cb5b
Deal with init before SST case.
2018-06-29 17:02:35 +03:00
Teemu Ollakka
0851970c53
Bootstrap server service, fixes to server state management
...
* Added bootstrap service call to do DBMS side bootstrap operations
during the cluster bootstrap.
* Added last_committed_gtid() to provider interface
* Implemented wait_for_gtid() provider call
* Pass initial position to the server state
2018-06-29 11:54:33 +03:00
Teemu Ollakka
2a53198f5c
Protocol version and connected gtid
...
* Propagate server max protocol version to provider init options
* Store gtid from connected call to make cluster id and the connect
position available
2018-06-26 11:34:05 +03:00
Teemu Ollakka
ccf5c08c35
* Removed client_context from server_service::log_view() params
...
* Call log_view() from server_state view handler
2018-06-26 08:04:05 +03:00
Teemu Ollakka
4e152ee79d
* Added applier side TOI commit order enter and leave
...
* Added cleanup_transaction() method to client_service in order to
provide a way to make DBMS side cleanup when transaction
is cleaned up
2018-06-25 14:09:19 +03:00
Teemu Ollakka
cad9176474
TOI replicating and applying codepaths
2018-06-25 09:28:51 +03:00
Teemu Ollakka
1f6a6db1e9
* Fixes to SST time server state management
...
* Logging tweaks
* Boolean to tune behavior on exception
2018-06-22 13:03:12 +03:00
Teemu Ollakka
bf7dad6815
Added open(), close(), cleanup() methods to client_state.
...
Depending on the DBMS client session allocation strategy the
client id may or may not be available when the client_session
is constructed, therefore there should be a method to assign
an id after construction. Close/cleanup methods were added to
clean up open transactions appropriately.
2018-06-20 10:07:55 +03:00
Teemu Ollakka
779f84e5df
Made client_service, transaction independent of provider.
...
Provider may not be loaded when client_service and
transaction are constructed.
2018-06-19 14:54:58 +03:00
Teemu Ollakka
0e4c7f16a9
Pass ws_handle as const reference to provider replay()
2018-06-19 09:36:15 +03:00
Teemu Ollakka
60fb119fa1
Cleaned up client_state interface.
2018-06-18 18:55:38 +03:00
Teemu Ollakka
cf231bdf2d
Refactored server_service out of server_state.
2018-06-18 17:45:24 +03:00
Teemu Ollakka
ef5751943d
Refactored most of the server_state interface into server_service
...
abstract interface.
2018-06-18 16:52:41 +03:00
Teemu Ollakka
03043d3f25
Removing client_state dependency from client_service.
2018-06-18 10:21:02 +03:00
Teemu Ollakka
af3119a58b
Removed ostream include from public API headers.
2018-06-17 13:55:37 +03:00
Teemu Ollakka
ef4baa9f9d
Renamed server_context to server_state.
2018-06-17 10:07:48 +03:00
Teemu Ollakka
790c2bec4e
Renamed transcation_context to transaction
2018-06-17 10:04:00 +03:00
Teemu Ollakka
dd28b173ab
Renamed client_context to client_state.
2018-06-17 10:00:13 +03:00
Teemu Ollakka
97ee96987e
Fixed dbsim BF aborts
2018-06-17 09:52:56 +03:00
Teemu Ollakka
47cb8e604c
Renamed client context m_applier to m_high_priority
2018-06-16 15:08:31 +03:00
Teemu Ollakka
d12513303a
Removed redundant dbms_simulator.cpp
2018-06-16 14:58:01 +03:00
Teemu Ollakka
dae5231dfc
Added topology argument to dbsim to allow testing master/slave
2018-06-16 11:30:50 +03:00
Teemu Ollakka
6dcac8ce4d
Finished dbsim integration with refactored client API.
2018-06-16 10:25:14 +03:00
Teemu Ollakka
ae68122d59
Refactored dbms simulator. Survives SST.
2018-06-15 16:25:27 +03:00
Teemu Ollakka
b3f60b7be1
Refactoring continued.
2018-06-15 15:13:22 +03:00
Teemu Ollakka
4fbf1d0cf8
Refactoring dbms simulator. Intermediate commit.
2018-06-15 12:58:36 +03:00