mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
Integrating into jepsen
This commit is contained in:
parent
9a59c12f7e
commit
a893cd3fe6
@ -9,5 +9,6 @@
|
|||||||
:dependencies [[org.clojure/clojure "1.10.1"]
|
:dependencies [[org.clojure/clojure "1.10.1"]
|
||||||
[jepsen "0.2.3"]
|
[jepsen "0.2.3"]
|
||||||
[zookeeper-clj "0.9.4"]
|
[zookeeper-clj "0.9.4"]
|
||||||
|
[me.raynes/conch "0.8.0"]
|
||||||
[org.apache.zookeeper/zookeeper "3.6.1" :exclusions [org.slf4j/slf4j-log4j12]]]
|
[org.apache.zookeeper/zookeeper "3.6.1" :exclusions [org.slf4j/slf4j-log4j12]]]
|
||||||
:repl-options {:init-ns jepsen.clickhouse-keeper.main})
|
:repl-options {:init-ns jepsen.clickhouse-keeper.main})
|
||||||
|
@ -125,22 +125,22 @@
|
|||||||
(c/exec :rm :-rf logs-dir)
|
(c/exec :rm :-rf logs-dir)
|
||||||
(c/exec :rm :-rf configs-dir)))
|
(c/exec :rm :-rf configs-dir)))
|
||||||
|
|
||||||
db/LogFiles
|
));db/LogFiles
|
||||||
(log-files [_ test node]
|
;(log-files [_ test node]
|
||||||
(c/su
|
; (c/su
|
||||||
(if (cu/exists? pid-file-path)
|
; (if (cu/exists? pid-file-path)
|
||||||
(do
|
; (do
|
||||||
(info node "Collecting traces")
|
; (info node "Collecting traces")
|
||||||
(collect-traces test node))
|
; (collect-traces test node))
|
||||||
(info node "Pid files doesn't exists"))
|
; (info node "Pid files doesn't exists"))
|
||||||
(kill-clickhouse! node test)
|
; (kill-clickhouse! node test)
|
||||||
(if (cu/exists? coordination-data-dir)
|
; (if (cu/exists? coordination-data-dir)
|
||||||
(do
|
; (do
|
||||||
(info node "Coordination files exists, going to compress")
|
; (info node "Coordination files exists, going to compress")
|
||||||
(c/cd data-dir
|
; (c/cd data-dir
|
||||||
(c/exec :tar :czf "coordination.tar.gz" "coordination")))))
|
; (c/exec :tar :czf "coordination.tar.gz" "coordination")))))
|
||||||
(let [common-logs [stderr-file (str logs-dir "/clickhouse-server.log") (str data-dir "/coordination.tar.gz")]
|
; (let [common-logs [stderr-file (str logs-dir "/clickhouse-server.log") (str data-dir "/coordination.tar.gz")]
|
||||||
gdb-log (str logs-dir "/gdb.log")]
|
; gdb-log (str logs-dir "/gdb.log")]
|
||||||
(if (cu/exists? (str logs-dir "/gdb.log"))
|
; (if (cu/exists? (str logs-dir "/gdb.log"))
|
||||||
(conj common-logs gdb-log)
|
; (conj common-logs gdb-log)
|
||||||
common-logs)))))
|
; common-logs)))))
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
[jepsen.clickhouse-keeper.unique :as unique]
|
[jepsen.clickhouse-keeper.unique :as unique]
|
||||||
[jepsen.clickhouse-keeper.queue :as queue]
|
[jepsen.clickhouse-keeper.queue :as queue]
|
||||||
[jepsen.clickhouse-keeper.counter :as counter]
|
[jepsen.clickhouse-keeper.counter :as counter]
|
||||||
|
[jepsen.clickhouse-keeper.bench :as bench]
|
||||||
[jepsen.clickhouse-keeper.constants :refer :all]
|
[jepsen.clickhouse-keeper.constants :refer :all]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[jepsen
|
[jepsen
|
||||||
@ -72,12 +73,15 @@
|
|||||||
:validate [pos? "Must be a positive integer."]]
|
:validate [pos? "Must be a positive integer."]]
|
||||||
[nil, "--lightweight-run" "Subset of workloads/nemesises which is simple to validate"]
|
[nil, "--lightweight-run" "Subset of workloads/nemesises which is simple to validate"]
|
||||||
[nil, "--reuse-binary" "Use already downloaded binary if it exists, don't remove it on shutdown"]
|
[nil, "--reuse-binary" "Use already downloaded binary if it exists, don't remove it on shutdown"]
|
||||||
|
[nil, "--bench" "Run perf-test mode"]
|
||||||
|
[nil, "--bench-opts STR" "Run perf-test mode"
|
||||||
|
:default "--generator list_medium_nodes -c 30 -i 1000"]
|
||||||
["-c" "--clickhouse-source URL" "URL for clickhouse deb or tgz package"
|
["-c" "--clickhouse-source URL" "URL for clickhouse deb or tgz package"
|
||||||
:default "https://clickhouse-builds.s3.yandex.net/21677/ef82333089156907a0979669d9374c2e18daabe5/clickhouse_build_check/clang-11_relwithdebuginfo_none_bundled_unsplitted_disable_False_deb/clickhouse-common-static_21.4.1.6313_amd64.deb"]])
|
:default "https://clickhouse-builds.s3.yandex.net/21677/ef82333089156907a0979669d9374c2e18daabe5/clickhouse_build_check/clang-11_relwithdebuginfo_none_bundled_unsplitted_disable_False_deb/clickhouse-common-static_21.4.1.6313_amd64.deb"]
|
||||||
|
[nil "--bench-path path" "Path to keeper-bench util"
|
||||||
|
:default "/home/alesap/code/cpp/BuildCH/utils/keeper-bench/keeper-bench"]])
|
||||||
|
|
||||||
(defn clickhouse-keeper-test
|
(defn clickhouse-func-tests
|
||||||
"Given an options map from the command line runner (e.g. :nodes, :ssh,
|
|
||||||
:concurrency, ...), constructs a test map."
|
|
||||||
[opts]
|
[opts]
|
||||||
(info "Test opts\n" (with-out-str (pprint opts)))
|
(info "Test opts\n" (with-out-str (pprint opts)))
|
||||||
(let [quorum (boolean (:quorum opts))
|
(let [quorum (boolean (:quorum opts))
|
||||||
@ -105,6 +109,30 @@
|
|||||||
(gen/sleep 10)
|
(gen/sleep 10)
|
||||||
(gen/clients (:final-generator workload)))})))
|
(gen/clients (:final-generator workload)))})))
|
||||||
|
|
||||||
|
(defn clickhouse-perf-test
|
||||||
|
[opts]
|
||||||
|
(info "Starting performance test")
|
||||||
|
(let [dct {:type :invoke :bench-opts (:bench-opts opts) :bench-path (:bench-path opts)}]
|
||||||
|
(merge tests/noop-test
|
||||||
|
opts
|
||||||
|
{:name (str "clickhouse-keeper-perf")
|
||||||
|
:os ubuntu/os
|
||||||
|
:db (db (:clickhouse-source opts) (boolean (:reuse-binary opts)))
|
||||||
|
:pure-generators true
|
||||||
|
:client (bench/bench-client)
|
||||||
|
:nemesis nemesis/noop
|
||||||
|
:generator (->> dct
|
||||||
|
(gen/stagger 1)
|
||||||
|
(gen/nemesis nil))})))
|
||||||
|
|
||||||
|
(defn clickhouse-keeper-test
|
||||||
|
"Given an options map from the command line runner (e.g. :nodes, :ssh,
|
||||||
|
:concurrency, ...), constructs a test map."
|
||||||
|
[opts]
|
||||||
|
(if (boolean (:bench opts))
|
||||||
|
(clickhouse-perf-test opts)
|
||||||
|
(clickhouse-func-tests opts)))
|
||||||
|
|
||||||
(def all-nemesises (keys custom-nemesis/custom-nemesises))
|
(def all-nemesises (keys custom-nemesis/custom-nemesises))
|
||||||
|
|
||||||
(def all-workloads (keys workloads))
|
(def all-workloads (keys workloads))
|
||||||
|
@ -24,8 +24,8 @@ std::string generateRandomString(size_t length)
|
|||||||
"abcdefghijklmnopqrstuvwxyz"
|
"abcdefghijklmnopqrstuvwxyz"
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
|
||||||
thread_local static pcg64 rng(randomSeed());
|
static pcg64 rng(randomSeed());
|
||||||
thread_local static std::uniform_int_distribution<size_t> pick(0, sizeof(chars) - 2);
|
static std::uniform_int_distribution<size_t> pick(0, sizeof(chars) - 2);
|
||||||
|
|
||||||
std::string s;
|
std::string s;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user