Skip to content
Snippets Groups Projects
  1. May 17, 2022
  2. May 13, 2022
  3. May 12, 2022
  4. May 11, 2022
    • Yaroslav Dynnikov's avatar
      test: arrange pytest logging · 71d5bb1f
      Yaroslav Dynnikov authored
      1. Print logs to the stderr so that they interleave with tarantool logs.
      2. Fix `cluster.__repr__()`.
      Verified
      71d5bb1f
    • Yaroslav Dynnikov's avatar
      test: revise pytest environment · 1bfc5a21
      Yaroslav Dynnikov authored
      1. Review `Pipfile`:
        - Remove unused `filelock`;
        - Install `mypy` - static type checker for Python.
      2. Add new command `pipenv run lint`.
      3. Enable `mypy` in CI. Fix reported errors in `test_basics.py`.
      4. Renew readme.
      Verified
      1bfc5a21
    • Yaroslav Dynnikov's avatar
      test: almost entirely refactor pytest · 1a3b5233
      Yaroslav Dynnikov authored
      In `conftest.py`:
      
        - *Add* function `xdist_worker_number`. It converts `str(worker_id)` into `int`.
          It serves as a substitute for `session_data_mutex` for parallel test runs.
      
        - *Change* `normalize_net_box_result`. Replace a function with a decorator. Also,
          handle typical kinds of picodata responses. Extensively test it in
          `test_basics.py::test_eval/call_normalization`.
      
        - *Add* dataclass `RaftStatus`. It shouldn't be used outside `conftest.py`. It only makes
          assertions more brief in logs and understndable in code.
      
        - *Add* all raft stuff into the `Instance` class. This implies `raft_propose_eval`,
          `assert_raft_status` all `promote_or_fail` moved from `util.py`.
      
        - *Change* fixture `compile`. No need in extra logics since commit 59c31cb8.
      
        - *Preserve* fixture `binary_path`.
      
        - *Remove* fixtures `session_data_mutex` and `run_id`. Superseded with `xdist_worker_number`.
      
        - *Remove* fixtures `run_cluster` and `run_instance`. Superseded with `cluster.deploy(...)`.
      
        - *Remove* function `wait_tcp_port`. It's never enough to check raw socket. Superseded with
          `instance.wait_ready()`.
      
        - Give the instances clean names `i1, i2, ...`, and simple addresses `127.7.0.1:3301`.
          For the parallel test run use different IPs `127.7.N.1` etc.
      
      In `test_basics.py`:
      
        - *Add* `test_xdist_worker_number`.
      
        - *Add* `test_call_normalization` and `test_eval_normalization`.
      
        - *Add* `test_process_management`. It's brand new, never implemented in luatest before.
      
        - *Rename* `test_single_instance_raft_eval` to `test_propose_eval` and extend it with additional
          assertion from `single_test.lua`.
      
        - *Remove* `test_instance`. A part of its logics is moved to `test_call/eval_normalization`. The
          other part is rewritten and extended in `test_process_management`.
      
        - *Remove* `test_cluster`. It was completely useless because of inappropriate synchronization and
          no valuable assertions.
      
        - *Remove* `test_propose_eval`. It wasn't that useful, but failed because of inappropriate
          synchronization.
      
      In `test_couple.py`:
      
        - *Preserve* `test_follower_proposal` and `test_failover`. Just slightly refactor according to the
          new `conftest.py` API.
      
      In `util.py` (completely removed):
      
        - *Remove* decorator `retry`. Needless.
      
        - *Remove* decorator `retry_on_network_errors`. Inappropriate predicate didn't catch Lua errors.
      
        - *Remove* everything related to raft. Move it into `conftest.py`.
      
      Part of https://git.picodata.io/picodata/picodata/picodata/-/issues/59
      1a3b5233
  5. Apr 28, 2022
  6. Apr 24, 2022
  7. Apr 18, 2022
    • Yaroslav Dynnikov's avatar
      Fix macos build · af4a2db7
      Yaroslav Dynnikov authored
      Remove prctl dependency that is not available on mac.
      Verified
      af4a2db7
    • Yaroslav Dynnikov's avatar
      Fix tests · d5c28170
      Yaroslav Dynnikov authored
      Verified
      d5c28170
    • Yaroslav Dynnikov's avatar
      Befriend two features · 88ea8ae4
      Yaroslav Dynnikov authored
      This pach establishes a friendship between discovery and raft_join.
      Verified
      88ea8ae4
    • Yaroslav Dynnikov's avatar
      Squash the huge patch · 10b6eb1c
      Yaroslav Dynnikov authored
      feat: raft peer discovery PoC
      
      chore: prevent C functions from being optimized out
      
      feat: improve peer discovery
      
      fix: fix tests after making instance_id arg mandatory
      
      Smart supevision with fork
      
      Make it work
      
      Under development
      
      IPC messages to supervisor
      
      One more little step: entrypoint enum
      
      Arrange IPC from child to supervisor
      
      Remove tarantool_main macro
      
      Persist snapshot
      
      Fix some fresh bugs
      
      Implement postjoin
      
      Discovery under refactoring
      
      Enhance discovery
      
      Working on discovery
      
      Fix all discovery bugs known so far
      
      Draft join algorithm
      
      Fail applying snapshot
      
      Joining a learner works
      
      Cleanup snapshot generation
      
      Reorganize traft code and call join automatically
      
      Change peer.commit_index type from option to u64
      
      Implement autopromotion to voter
      
      Implement read_index
      
      Take read_index before self-romotion
      
      Cleanup excess logs
      
      Cleanup logs and code
      
      Deep refactoring in progress
      
      Finish refactoring db schema
      
      Embed entries applying inside traft node
      
      Refactor raft node communication
      
      Replace fiber channel with a mailbox, which is a `Vec<_>` + fiber cond.
      It allows to batch raft commands in a more predictable way and makes
      the code less error-prone.
      
      Remove commented code
      
      Simplify raft nodes interaction over net_box
      
      Eliminate `traft::Message` struct because its internals aren't used.
      Instead, serialize `raft::Message` using protobuf.
      
      Batch ConnectionPool requests
      
      1. Send messages in batches.
      2. Allow changing connection uri.
      3. Close unused connections after `inactivity_timeout`.
      
      Enhance the raft node
      
      1. Collect results from raft node
      2. Fix initial bootstrap which used to fail due to fiber race.
      3. Wrap raft storage operations in a transaction.
      
      Bump tarantool module
      
      Add documentation draft
      
      Cleanup warnings
      
      Try fixing tests
      
      Fix test_storage_log
      
      Fix test_traft_pool
      
      Fix luatest single and couple
      
      Start fixing threesome test
      
      Implement concurrent join requests handling
      Verified
      10b6eb1c
  8. Apr 14, 2022
  9. Mar 10, 2022
  10. Mar 09, 2022
  11. Feb 22, 2022
  12. Feb 21, 2022
  13. Feb 18, 2022
    • Georgy Moshkin's avatar
      build: static linking with tarantool · f77d1e5d
      Georgy Moshkin authored
      + tarantool-sys submodule
      + tarantool-patches directory
      + build.rs build script to patch and build tarantool
      + static linking with tarantool
      + refactoring for cli arguments
      f77d1e5d
  14. Feb 15, 2022
Loading