aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2023-04-19 15:59:30 +0200
committerAlex Auvolat <alex@adnab.me>2023-10-18 12:03:11 +0200
commit0bb1577ae12b2dde313e036399f252266bc04d0a (patch)
treed45695a18af7bb7e8080b20897887af144ca7ee6
parent6eb26be548c08707b59473e6086f3f5eee89fe47 (diff)
downloadgarage-0bb1577ae12b2dde313e036399f252266bc04d0a.tar.gz
garage-0bb1577ae12b2dde313e036399f252266bc04d0a.zip
two set workloads with different checkers
-rw-r--r--script/jepsen.garage/src/jepsen/garage.clj3
-rw-r--r--script/jepsen.garage/src/jepsen/garage/grg.clj3
-rw-r--r--script/jepsen.garage/src/jepsen/garage/set.clj20
3 files changed, 18 insertions, 8 deletions
diff --git a/script/jepsen.garage/src/jepsen/garage.clj b/script/jepsen.garage/src/jepsen/garage.clj
index 7f762923..dbaf265b 100644
--- a/script/jepsen.garage/src/jepsen/garage.clj
+++ b/script/jepsen.garage/src/jepsen/garage.clj
@@ -16,7 +16,8 @@
(def workloads
"A map of workload names to functions that construct workloads, given opts."
{"reg" reg/workload
- "set" set/workload})
+ "set1" set/workload1
+ "set2" set/workload2})
(def cli-opts
"Additional command line options."
diff --git a/script/jepsen.garage/src/jepsen/garage/grg.clj b/script/jepsen.garage/src/jepsen/garage/grg.clj
index 2e9bcc72..4597fb14 100644
--- a/script/jepsen.garage/src/jepsen/garage/grg.clj
+++ b/script/jepsen.garage/src/jepsen/garage/grg.clj
@@ -120,10 +120,11 @@
(defn s3-list
"Helper for ListObjects -- just lists everything in the bucket"
- [creds]
+ [creds prefix]
(defn list-inner [ct accum]
(let [list-result (s3/list-objects-v2 creds
{:bucket-name (:bucket creds)
+ :prefix prefix
:continuation-token ct})
new-object-summaries (:object-summaries list-result)
new-objects (map (fn [d] (:key d)) new-object-summaries)
diff --git a/script/jepsen.garage/src/jepsen/garage/set.clj b/script/jepsen.garage/src/jepsen/garage/set.clj
index ab99e6ef..f8c92580 100644
--- a/script/jepsen.garage/src/jepsen/garage/set.clj
+++ b/script/jepsen.garage/src/jepsen/garage/set.clj
@@ -34,12 +34,12 @@
(grg/s3-put (:creds this) (str (:value op)) "present")
(assoc op :type :ok))
:read
- (let [items (grg/s3-list (:creds this))]
+ (let [items (grg/s3-list (:creds this) "")]
(assoc op :type :ok, :value (set (map read-string items))))))
(teardown! [this test])
(close! [this test]))
-(defn workload
+(defn workload1
"Tests insertions and deletions"
[opts]
{:client (SetClient. nil)
@@ -47,10 +47,18 @@
{:set (checker/set)
:timeline (timeline/html)})
; :generator (gen/mix [op-add op-read])
- ; :generator (->> (range)
- ; (map (fn [x] {:type :invoke, :f :add, :value x})))
- :generator (gen/mix [op-read
- (->> (range) (map (fn [x] {:type :invoke, :f :add, :value x})))])
+ :generator (->> (range)
+ (map (fn [x] {:type :invoke, :f :add, :value x})))
:final-generator (gen/once op-read)})
+(defn workload2
+ "Tests insertions and deletions"
+ [opts]
+ {:client (SetClient. nil)
+ :checker (checker/compose
+ {:set (checker/set-full {:linearizable? false})
+ :timeline (timeline/html)})
+ :generator (gen/mix [op-read
+ (->> (range) (map (fn [x] {:type :invoke, :f :add, :value x})))])})
+