Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH v2 0/5] replication: fix local space tracking
@ 2020-03-18 19:47 Serge Petrenko
  2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 1/5] box: introduce matrix clock Serge Petrenko
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Serge Petrenko @ 2020-03-18 19:47 UTC (permalink / raw)
  To: v.shpilevoy, kostja.osipov, georgy; +Cc: tarantool-patches

https://github.com/tarantool/tarantool/issues/4114
https://github.com/tarantool/tarantool/tree/sp/gh-4114-local-space-replication

The patchset contains 2 of Georgy's patches perorming WAL gc rework.
The first patch introduces a matrix clock structure, which contains the latest
known vclocks of all the cluster members and can be used to build a vclock,
which is less than or equal to all the member vclocks.
Such a vclock is used then in the second patch, where gc is rewritten to stop
tracking needed WAL files by vclock signature. Now replica vclocks are used to
define which files are still needed.

These two patches allow to start using a  0 vclock component to track local
space changes and ignore this component when finding WALs needed by a replica.

Patches 3 and 4 are preparation for the patch 5, which performs the task itself.
Now every replica has its own 0-th vclock component, which doesn't match any of
the other instance components and indicates the number of local space requests
executed.

Georgy Kirichenko (2):
  box: introduce matrix clock
  wal: track consumer vclock and collect logs in wal thread

Serge Petrenko (3):
  vclock: add an ability to set individual clock components
  replication: hide 0-th vclock components in replication responses
  box: start counting local space requests separately

 src/box/CMakeLists.txt                        |   4 +
 src/box/applier.cc                            |   5 +-
 src/box/box.cc                                |  70 ++--
 src/box/gc.c                                  | 216 +++-------
 src/box/gc.h                                  |  95 +----
 src/box/lua/info.c                            |  29 +-
 src/box/mclock.c                              | 394 ++++++++++++++++++
 src/box/mclock.h                              | 151 +++++++
 src/box/relay.cc                              | 157 ++-----
 src/box/replication.cc                        |  47 +--
 src/box/replication.h                         |   3 -
 src/box/vclock.c                              |  15 +
 src/box/vclock.h                              |  11 +
 src/box/wal.c                                 | 286 +++++++++++--
 src/box/wal.h                                 |  17 +-
 test/replication/anon.result                  |   5 +
 test/replication/anon.test.lua                |   2 +
 test/replication/autobootstrap.result         |   6 +
 test/replication/autobootstrap.test.lua       |   2 +
 test/replication/before_replace.result        |   8 +-
 test/replication/before_replace.test.lua      |   4 +-
 test/replication/gc_no_space.result           |  30 +-
 test/replication/gc_no_space.test.lua         |  12 +-
 .../gh-4114-local-space-replication.result    | 125 ++++++
 .../gh-4114-local-space-replication.test.lua  |  48 +++
 test/replication/local_spaces.result          |   4 +
 test/replication/local_spaces.test.lua        |   3 +
 test/replication/misc.result                  |   6 +
 test/replication/misc.test.lua                |   2 +
 test/replication/quorum.result                |   6 +
 test/replication/quorum.test.lua              |   2 +
 test/replication/replica_rejoin.result        |   9 +
 test/replication/replica_rejoin.test.lua      |   3 +
 test/replication/skip_conflict_row.result     |   3 +
 test/replication/skip_conflict_row.test.lua   |   1 +
 test/replication/suite.cfg                    |   1 +
 test/unit/CMakeLists.txt                      |   2 +
 test/unit/mclock.result                       |  18 +
 test/unit/mclock.test.c                       | 160 +++++++
 test/vinyl/errinj.result                      |   5 +
 test/vinyl/errinj.test.lua                    |   4 +
 41 files changed, 1430 insertions(+), 541 deletions(-)
 create mode 100644 src/box/mclock.c
 create mode 100644 src/box/mclock.h
 create mode 100644 test/replication/gh-4114-local-space-replication.result
 create mode 100644 test/replication/gh-4114-local-space-replication.test.lua
 create mode 100644 test/unit/mclock.result
 create mode 100644 test/unit/mclock.test.c

-- 
2.21.1 (Apple Git-122.3)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-03-19 11:59 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-18 19:47 [Tarantool-patches] [PATCH v2 0/5] replication: fix local space tracking Serge Petrenko
2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 1/5] box: introduce matrix clock Serge Petrenko
2020-03-18 20:08   ` Konstantin Osipov
2020-03-19  8:11     ` Timur Safin
2020-03-19  8:41       ` 'Konstantin Osipov'
2020-03-19  9:17         ` Sergey Ostanevich
2020-03-19 11:28           ` Serge Petrenko
2020-03-19 11:56             ` Konstantin Osipov
2020-03-19 11:59               ` Serge Petrenko
2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 2/5] wal: track consumer vclock and collect logs in wal thread Serge Petrenko
2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 3/5] vclock: add an ability to set individual clock components Serge Petrenko
2020-03-18 20:10   ` Konstantin Osipov
2020-03-19 11:31     ` Serge Petrenko
2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 4/5] replication: hide 0-th vclock components in replication responses Serge Petrenko
2020-03-18 19:47 ` [Tarantool-patches] [PATCH v2 5/5] box: start counting local space requests separately Serge Petrenko
2020-03-18 21:12 ` [Tarantool-patches] [PATCH v2 0/5] replication: fix local space tracking Vladislav Shpilevoy
2020-03-19  8:17 ` Konstantin Osipov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox