mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-22 23:21:53 +03:00
ff94dfd8a714a405aaba4da2c44a109feee956c5
This patch adds the possibility to have client commands that do not return results from DBMS. While processing such commands we must be able to preserve errors until the next interaction with client. Specifically if the transaction is bf aborted while processing such a non-returning command, then we have to keep the deadlock error until the client issues a command that may return the error. To handle such cases, client_state::before_command() now takes parameter keep_command_error. The DBMS is supposed set keep_command_error true to instruct wsrep-lib to preserve errors (if any) until the next command which sets keep_command_error false. Dealing with a case where current client command does not return result. Work in progress. Fix typo and add assertions in keep_command_error() Make keep_command_error a parameter to before_commit() Fix comment about keep_command_error Handle keep_command_error with s_must_abort in wsrep_before_command() Fix unit test
Introduction
Project name: wsrep-lib - Integration library for WSREP API
The purpose of this project is to implement C++ wrapper for wsrep API with additional convenience for transaction processing.
This project will abstract away most of the transaction state management required on DBMS side and will provide simple C++ interface for key set population, data set population, commit processing, write set applying etc.
Build Instructions
In order to build the library, run
cmake . make
Build Requirements
- C++ compiler (g++ 5.4 or later recommended)
- CMake version 2.8 or later
- The following Boost libraries are required if the unit tests and
the sample program is compiled
- Unit Test Framework
- Program Options
- Filesystem
- Thread
CMake Options
- WSREP_LIB_WITH_UNIT_TESTS - Compile unit tests (default ON)
- WSREP_LIB_WITH_AUTO_TEST - Run unit tests automatically as a part of compilation (default OFF)
- WSREP_LIB_WITH_DBSIM - Compile sample program (default ON)
- WSREP_LIB_WITH_ASAN - Enable address sanitizer instrumentation (default OFF)
- WSREP_LIB_WITH_TSAN - Enable thread sanitizer instrumentation (default OFF)
- WSREP_LIB_WITH_DOCUMENTATION - Generate documentation, requires Doxygen (default OFF)
- WSREP_LIB_WITH_COVERAGE - Compile with coverage instrumentation (default OFF)
- WSREP_LIB_STRICT_BUILD_FLAGS - Compile with strict build flags, currently enables -Weffc++ (default OFF)
- WSREP_LIB_MAINTAINER_MODE - Make every compiler warning to be treated as error, enables -Werror compiler flag (default OFF)
Languages
C++
96.9%
CMake
2.6%
Shell
0.5%