[Tarantool-patches] [PATCH 12/12] raft: move algorithm code to src/lib/raft
Serge Petrenko
sergepetrenko at tarantool.org
Tue Nov 17 18:13:40 MSK 2020
17.11.2020 03:02, Vladislav Shpilevoy пишет:
> Raft algorithm code does not depend on box anymore, and is moved
> to src/lib/raft.
>
> This is done to be able to unit test Raft similarly to Swim - with
> virtual event loop, network, time, and disk. Using any number of
> instances. That will allow to cover all crazy and rare cases
> possible in Raft, but without problems of functional tests
> stability and clumsiness.
>
> Part of #5303
LGTM.
> ---
> src/box/CMakeLists.txt | 3 +--
> src/box/raft.h | 2 +-
> src/lib/CMakeLists.txt | 1 +
> src/lib/raft/CMakeLists.txt | 7 +++++++
> src/{box/raftlib.c => lib/raft/raft.c} | 0
> src/{box/raftlib.h => lib/raft/raft.h} | 0
> 6 files changed, 10 insertions(+), 3 deletions(-)
> create mode 100644 src/lib/raft/CMakeLists.txt
> rename src/{box/raftlib.c => lib/raft/raft.c} (100%)
> rename src/{box/raftlib.h => lib/raft/raft.h} (100%)
>
> diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt
> index fcf779379..a7547c29f 100644
> --- a/src/box/CMakeLists.txt
> +++ b/src/box/CMakeLists.txt
> @@ -169,7 +169,6 @@ add_library(box STATIC
> port.c
> txn.c
> txn_limbo.c
> - raftlib.c
> raft.c
> box.cc
> gc.c
> @@ -263,6 +262,6 @@ add_custom_command(OUTPUT ${SQL_BIN_DIR}/opcodes.c
> ${SQL_BIN_DIR}/opcodes.h)
>
> target_link_libraries(box box_error tuple stat xrow xlog vclock crc32 scramble
> - ${common_libraries})
> + raft ${common_libraries})
>
> add_dependencies(box build_bundled_libs generate_sql_files)
> diff --git a/src/box/raft.h b/src/box/raft.h
> index 4dffce380..7e0768cd3 100644
> --- a/src/box/raft.h
> +++ b/src/box/raft.h
> @@ -29,7 +29,7 @@
> * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> */
> -#include "raftlib.h"
> +#include "raft/raft.h"
>
> #if defined(__cplusplus)
> extern "C" {
> diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
> index de1b902c6..cabbe3d89 100644
> --- a/src/lib/CMakeLists.txt
> +++ b/src/lib/CMakeLists.txt
> @@ -14,6 +14,7 @@ add_subdirectory(crypto)
> add_subdirectory(swim)
> add_subdirectory(mpstream)
> add_subdirectory(vclock)
> +add_subdirectory(raft)
> if(ENABLE_BUNDLED_MSGPUCK)
> add_subdirectory(msgpuck EXCLUDE_FROM_ALL)
> endif()
> diff --git a/src/lib/raft/CMakeLists.txt b/src/lib/raft/CMakeLists.txt
> new file mode 100644
> index 000000000..aef2bacf7
> --- /dev/null
> +++ b/src/lib/raft/CMakeLists.txt
> @@ -0,0 +1,7 @@
> +set(lib_sources
> + raft.c
> +)
> +
> +set_source_files_compile_flags(${lib_sources})
> +add_library(raft STATIC ${lib_sources})
> +target_link_libraries(raft core)
> diff --git a/src/box/raftlib.c b/src/lib/raft/raft.c
> similarity index 100%
> rename from src/box/raftlib.c
> rename to src/lib/raft/raft.c
> diff --git a/src/box/raftlib.h b/src/lib/raft/raft.h
> similarity index 100%
> rename from src/box/raftlib.h
> rename to src/lib/raft/raft.h
--
Serge Petrenko
More information about the Tarantool-patches
mailing list