mirror of
https://git.deuxfleurs.fr/Deuxfleurs/garage.git
synced 2024-11-24 09:01:02 +00:00
jepsen: register crdt read-after-write is fixed with deleteobject patch
This commit is contained in:
parent
d148b83d4f
commit
f5b0972781
4 changed files with 9 additions and 9 deletions
|
@ -45,7 +45,7 @@ clocks are scrambled.
|
|||
|
||||
### Register linear, with timestamp patch
|
||||
|
||||
Command: `lein run test --nodes-file nodes.vagrant --time-limit 60 --rate 20 --concurrency 20 --workload reg1 --ops-per-key 100 -I`
|
||||
Command: `lein run test --nodes-file nodes.vagrant --time-limit 60 --rate 20 --concurrency 20 --workload reg1 --ops-per-key 100 --patch tsfix1`
|
||||
|
||||
Results:
|
||||
|
||||
|
@ -62,15 +62,13 @@ Results: fails with a simple clock-scramble nemesis.
|
|||
|
||||
Explanation: old values are not overwritten correctly when their timestamps are in the future.
|
||||
|
||||
### Read-after-write CRDT register model, with timestamp patch
|
||||
### Read-after-write CRDT register model, with timestamp patch (v2 with DeleteObject fix as well)
|
||||
|
||||
Command: `lein run test --nodes-file nodes.vagrant --time-limit 60 --rate 100 --concurrency 100 --workload reg2 --ops-per-key 100 -I`
|
||||
Command: `lein run test --nodes-file nodes.vagrant --time-limit 60 --rate 100 --concurrency 100 --workload reg2 --ops-per-key 100 --patch tsfix2`
|
||||
|
||||
Results:
|
||||
|
||||
- Failures with clock-scramble nemesis + partition nemesis ???? TODO INVESTIGATE
|
||||
-> the issue seems to be only after DeleteObject (deletions are not always taken into account),
|
||||
the issue does not appear if we are using only PutObject with an actual object content
|
||||
- No failures with clock-scramble nemesis + partition nemesis
|
||||
- TODO: layout reconfiguration nemesis
|
||||
|
||||
|
||||
|
@ -123,6 +121,7 @@ The inconsistencies seemed to always happenned after writing a nil value, which
|
|||
instead of a PutObject. By removing the possibility of writing nil values, therefore only doing
|
||||
PutObject calls, the issue disappears. There is therefore an issue to fix in DeleteObject.
|
||||
|
||||
The issue in DeleteObject seems to have been fixed by commit `c82d91c6bccf307186332b6c5c6fc0b128b1b2b1`
|
||||
|
||||
|
||||
## License
|
||||
|
|
1
script/jepsen.garage/Vagrantfile
vendored
1
script/jepsen.garage/Vagrantfile
vendored
|
@ -13,6 +13,7 @@ Vagrant.configure("2") do |config|
|
|||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.gui = false
|
||||
vb.memory = "512"
|
||||
vb.customize ["modifyvm", :id, "--vram=12"]
|
||||
end
|
||||
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
(def patches
|
||||
"A map of patch names to Garage builds"
|
||||
{"default" "v0.9.0"
|
||||
"tsfix1" "d146cdd5b66ca1d3ed65ce93ca42c6db22defc09"})
|
||||
"tsfix1" "d146cdd5b66ca1d3ed65ce93ca42c6db22defc09"
|
||||
"tsfix2" "c82d91c6bccf307186332b6c5c6fc0b128b1b2b1"})
|
||||
|
||||
(def cli-opts
|
||||
"Additional command line options."
|
||||
|
|
|
@ -112,8 +112,7 @@
|
|||
(range)
|
||||
(fn [k]
|
||||
(->>
|
||||
; (gen/mix [op-get op-put op-del])
|
||||
(gen/mix [op-get op-put])
|
||||
(gen/mix [op-get op-put op-del])
|
||||
(gen/limit (:ops-per-key opts)))))})
|
||||
|
||||
(defn workload1
|
||||
|
|
Loading…
Reference in a new issue