mirror of
https://github.com/codership/wsrep-lib.git
synced 2026-01-04 04:13:04 +03:00
256cd6ae602f9fe729a7dbb173c8c732cc03013c
Provider desync may return an error if the provider cannot communicate with rest of the cluster. However, this is acceptable for example if the node has dropped from primary view. Instead of returning error immediately after failed desync(), attempt to pause the provider regardless of the error. If pause operation fails, error is returned. In order to avoid resync in resume_and_resync() in the case desync failed in desync_and_pause(), new member variable desynced_on_pause_ was introduced to decide whether to resync or not in resume_and_resync(). This variable is protected by pause()/resume() calls since they do not allow concurrent pause/resume operations.
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)
Languages
C++
96.9%
CMake
2.6%
Shell
0.5%