[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