Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.3.10 #791

Merged
merged 2 commits into from
Mar 17, 2022
Merged

1.3.10 #791

merged 2 commits into from
Mar 17, 2022

Conversation

fengjiachun
Copy link
Contributor

@fengjiachun fengjiachun commented Mar 14, 2022

  • unit test

  • jepsen verification

    • configuration-test: remove and add a random node
    • bridge-test: weaving the network into happy little intersecting majority rings
    • pause-test: pausing random node with SIGSTOP/SIGCONT
    • crash-test: killing random nodes and restarting them
    • partition-test: Cuts the network into randomly chosen halves
    • partition-majority-test: Cuts the network into randomly majority groups
  • benchmark

  • release note

  • release

1.3.10

2022-03-17

@fengjiachun
Copy link
Contributor Author

a. configuration-test: remove and add a random node

sh run_test.sh --testfn configuration-test


INFO [2022-03-14 15:20:05,164] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :linear
 {:valid? true, :model {:value 3}, :final-paths (), :configs ()},
 :timeline {:valid? true},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun
Copy link
Contributor Author

bridge-test: weaving the network into happy little intersecting majority rings

`sh run_test.sh --testfn bridge-test`

INFO [2022-03-14 15:24:36,216] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :linear
 {:valid? true, :model {:value 1}, :final-paths (), :configs ()},
 :timeline {:valid? true},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun fengjiachun changed the title 1.3.10 [WIP] 1.3.10 Mar 14, 2022
@fengjiachun
Copy link
Contributor Author

pause-test: pausing random node with SIGSTOP/SIGCONT

sh run_test.sh --testfn pause-test


INFO [2022-03-14 15:29:43,478] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :linear
 {:valid? true, :model {:value 0}, :final-paths (), :configs ()},
 :timeline {:valid? true},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun
Copy link
Contributor Author

crash-test: killing random nodes and restarting them

sh run_test.sh --testfn crash-test


INFO [2022-03-14 17:06:03,330] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :linear
 {:valid? true, :model {:value 2}, :final-paths (), :configs ()},
 :timeline {:valid? true},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun
Copy link
Contributor Author

partition-test: Cuts the network into randomly chosen halves

sh run_test.sh --testfn partition-test


INFO [2022-03-14 17:08:57,465] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :indep
 {:valid? true,
  :results
  {0
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 1},
       :last-op
       {:process 1,
        :type :ok,
        :f :write,
        :value 1,
        :index 201,
        :time 3914186083},
       :pending []}),
     :final-paths ()},
    :valid? true},
   7
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 0},
       :last-op
       {:process 1,
        :type :ok,
        :f :read,
        :value 0,
        :index 1607,
        :time 37595469042},
       :pending
       [{:process 8,
         :type :invoke,
         :f :write,
         :value 4,
         :index 1594,
         :time 37117310917}
        {:process 24,
         :type :invoke,
         :f :write,
         :value 0,
         :index 1602,
         :time 37305066583}]}
      {:model {:value 0},
       :last-op
       {:process 1,
        :type :ok,
        :f :read,
        :value 0,
        :index 1607,
        :time 37595469042},
       :pending []}
      {:model {:value 0},
       :last-op
       {:process 1,
        :type :ok,
        :f :read,
        :value 0,
        :index 1607,
        :time 37595469042},
       :pending
       [{:process 8,
         :type :invoke,
         :f :write,
         :value 4,
         :index 1594,
         :time 37117310917}]}),
     :final-paths ()},
    :valid? true},
   1
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 1},
       :last-op
       {:process 0,
        :type :ok,
        :f :read,
        :value 1,
        :index 412,
        :time 12696719750},
       :pending
       [{:process 4,
         :type :invoke,
         :f :write,
         :value 3,
         :index 330,
         :time 5876695167}]}
      {:model {:value 1},
       :last-op
       {:process 0,
        :type :ok,
        :f :read,
        :value 1,
        :index 412,
        :time 12696719750},
       :pending []}
      {:model {:value 1},
       :last-op
       {:process 0,
        :type :ok,
        :f :read,
        :value 1,
        :index 412,
        :time 12696719750},
       :pending
       [{:process 3,
         :type :invoke,
         :f :write,
         :value 3,
         :index 342,
         :time 6554106833}]}
      {:model {:value 1},
       :last-op
       {:process 0,
        :type :ok,
        :f :read,
        :value 1,
        :index 412,
        :time 12696719750},
       :pending
       [{:process 3,
         :type :invoke,
         :f :write,
         :value 3,
         :index 342,
         :time 6554106833}
        {:process 4,
         :type :invoke,
         :f :write,
         :value 3,
         :index 330,
         :time 5876695167}]}),
     :final-paths ()},
    :valid? true},
   4
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 2},
       :last-op
       {:process 9,
        :type :ok,
        :f :write,
        :value 2,
        :index 1007,
        :time 23361079625},
       :pending []}),
     :final-paths ()},
    :valid? true},
   13
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 0},
       :last-op
       {:process 59,
        :type :ok,
        :f :write,
        :value 0,
        :index 2823,
        :time 59792143000},
       :pending []}),
     :final-paths ()},
    :valid? true},
   6
   {:timeline {:valid? true},
    :linear
    {:valid? true, :model {:value 4}, :final-paths (), :configs ()},
    :valid? true},
   3
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 4},
       :last-op
       {:process 1,
        :type :ok,
        :f :read,
        :value 4,
        :index 802,
        :time 19148990708},
       :pending []}),
     :final-paths ()},
    :valid? true},
   12
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 4},
       :last-op
       {:process 45,
        :type :ok,
        :f :write,
        :value 4,
        :index 2622,
        :time 56594403042},
       :pending []}),
     :final-paths ()},
    :valid? true},
   2
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 2},
       :last-op
       {:process 0,
        :type :ok,
        :f :write,
        :value 2,
        :index 605,
        :time 15751423583},
       :pending []}),
     :final-paths ()},
    :valid? true},
   11
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 1},
       :last-op
       {:process 26,
        :type :ok,
        :f :write,
        :value 1,
        :index 2430,
        :time 53462658458},
       :pending []}),
     :final-paths ()},
    :valid? true},
   9
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 1},
       :last-op
       {:process 45,
        :type :ok,
        :f :write,
        :value 1,
        :index 2013,
        :time 45576996625},
       :pending []}
      {:model {:value 4},
       :last-op
       {:process 59,
        :type :ok,
        :f :read,
        :value 4,
        :index 2012,
        :time 45576988083},
       :pending []}
      {:model {:value 2},
       :last-op
       {:process 26,
        :type :ok,
        :f :read,
        :value 2,
        :index 2015,
        :time 45585623833},
       :pending []}),
     :final-paths ()},
    :valid? true},
   5
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 2},
       :last-op
       {:process 9,
        :type :ok,
        :f :write,
        :value 2,
        :index 1210,
        :time 26659997667},
       :pending []}
      {:model {:value 0},
       :last-op
       {:process 2,
        :type :ok,
        :f :write,
        :value 0,
        :index 1208,
        :time 26647209292},
       :pending []}),
     :final-paths ()},
    :valid? true},
   14
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 4},
       :last-op
       {:process 32,
        :type :ok,
        :f :read,
        :value 4,
        :index 2870,
        :time 60572385708},
       :pending []}),
     :final-paths ()},
    :valid? true},
   10
   {:timeline {:valid? true},
    :linear
    {:valid? true,
     :configs
     ({:model {:value 3},
       :last-op
       {:process 45,
        :type :ok,
        :f :write,
        :value 3,
        :index 2217,
        :time 49741909875},
       :pending []}
      {:model {:value 0},
       :last-op
       {:process 33,
        :type :ok,
        :f :read,
        :value 0,
        :index 2215,
        :time 49739694292},
       :pending []}),
     :final-paths ()},
    :valid? true},
   8
   {:timeline {:valid? true},
    :linear
    {:valid? true, :model {:value 1}, :final-paths (), :configs ()},
    :valid? true}},
  :failures []},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun
Copy link
Contributor Author

partition-majority-test: Cuts the network into randomly majority groups

sh run_test.sh --testfn partition-majority-test


INFO [2022-03-14 17:13:33,115] main - jepsen.core {:perf
 {:latency-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$point_graph_BANG_$fn__2988.invoke (perf.clj:264)\n    jepsen.checker.perf$point_graph_BANG_.invokeStatic (perf.clj:263)\n    jepsen.checker.perf$point_graph_BANG_.invoke (perf.clj:248)\n    jepsen.checker$latency_graph$reify__3665.check (checker.clj:413)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :rate-graph
  {:valid? :unknown,
   :error
   "java.lang.IllegalStateException: Error rendering plot, verify gnuplot is installed and reachable\n at jepsen.checker.perf$rate_graph_BANG_.invokeStatic (perf.clj:375)\n    jepsen.checker.perf$rate_graph_BANG_.invoke (perf.clj:351)\n    jepsen.checker$rate_graph$reify__3668.check (checker.clj:422)\n    jepsen.checker$check_safe.invokeStatic (checker.clj:71)\n    jepsen.checker$check_safe.invoke (checker.clj:64)\n    jepsen.checker$compose$reify__3577$fn__3579.invoke (checker.clj:87)\n    clojure.core$pmap$fn__8105$fn__8106.invoke (core.clj:6942)\n    clojure.core$binding_conveyor_fn$fn__5476.invoke (core.clj:2022)\n    clojure.lang.AFn.call (AFn.java:18)\n    java.util.concurrent.FutureTask.run (FutureTask.java:266)\n    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)\n    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)\n    java.lang.Thread.run (Thread.java:748)\n"},
  :valid? :unknown},
 :linear
 {:valid? true, :model {:value 1}, :final-paths (), :configs ()},
 :timeline {:valid? true},
 :valid? :unknown}


Everything looks good! ヽ(‘ー`)ノ

@fengjiachun
Copy link
Contributor Author

fengjiachun commented Mar 16, 2022

benchmark

本次测试并不是压测极限性能,主要希望验证 Replicator 中的非可重入锁改为了普通的可重入锁 #783 会不会有性能下降,所以核心思路是多起 replicatror ,少数 client 适当加压,tps、时延差不多就可以了

测试条件:
Server 为 rheakv memory 版本,24 个 region(raft group),每个 region 3 副本,一个 client 32 并发,写 9 读 1

1.3.10 (可重入锁 Replicator)

get_benchmark_timer
             count = 905447
         mean rate = 1247.44 calls/second
     1-minute rate = 1331.08 calls/second
     5-minute rate = 1191.68 calls/second
    15-minute rate = 704.40 calls/second
               min = 0.13 milliseconds
               max = 111.25 milliseconds
              mean = 13.14 milliseconds
            stddev = 11.14 milliseconds
            median = 10.48 milliseconds
              75% <= 17.20 milliseconds
              95% <= 33.03 milliseconds
              98% <= 44.17 milliseconds
              99% <= 56.58 milliseconds
            99.9% <= 80.23 milliseconds
put_benchmark_timer
             count = 8148983
         mean rate = 11226.90 calls/second
     1-minute rate = 11981.09 calls/second
     5-minute rate = 10725.40 calls/second
    15-minute rate = 6339.66 calls/second
               min = 0.95 milliseconds
               max = 287.84 milliseconds
              mean = 24.05 milliseconds
            stddev = 14.35 milliseconds
            median = 21.67 milliseconds
              75% <= 27.48 milliseconds
              95% <= 42.07 milliseconds
              98% <= 57.05 milliseconds
              99% <= 69.89 milliseconds
            99.9% <= 287.84 milliseconds

1.3.9 (老版本)

get_benchmark_timer
             count = 918478
         mean rate = 1317.86 calls/second
     1-minute rate = 1335.77 calls/second
     5-minute rate = 1223.40 calls/second
    15-minute rate = 719.89 calls/second
               min = 0.36 milliseconds
               max = 188.51 milliseconds
              mean = 12.55 milliseconds
            stddev = 13.91 milliseconds
            median = 9.62 milliseconds
              75% <= 16.07 milliseconds
              95% <= 27.55 milliseconds
              98% <= 34.28 milliseconds
              99% <= 52.37 milliseconds
            99.9% <= 188.51 milliseconds
put_benchmark_timer
             count = 8266406
         mean rate = 11860.87 calls/second
     1-minute rate = 12021.63 calls/second
     5-minute rate = 11010.48 calls/second
    15-minute rate = 6478.93 calls/second
               min = 1.77 milliseconds
               max = 184.82 milliseconds
              mean = 25.26 milliseconds
            stddev = 15.71 milliseconds
            median = 22.87 milliseconds
              75% <= 28.30 milliseconds
              95% <= 40.68 milliseconds
              98% <= 52.64 milliseconds
              99% <= 82.69 milliseconds
            99.9% <= 184.82 milliseconds

横向对比 (左:1.3.10;右:1.3.9)

image

@fengjiachun fengjiachun changed the title [WIP] 1.3.10 1.3.10 Mar 17, 2022
Copy link
Member

@horizonzy horizonzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@killme2008 killme2008 merged commit 4739cbd into master Mar 17, 2022
@fengjiachun fengjiachun deleted the 1.3.10 branch March 17, 2022 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants